在WP8、WP8中,我们知道有一个绑定{Binding},而在Win10中,新增了一个绑定{x:Bind}
x:Bind :为编译时绑定 ,内存、内存相对于传统绑定都有优化
特性:
1.为强类型 2.默认上下文为Page或UserControl 3.Mode默认为OneTime
xaml:
<TextBlock Text="{x:Bind BindData}"/>
后台代码:
1 public sealed partial class MainPage : Page 2 { 3 public string BindData = "绑定的数据"; 4 5 public MainPage() 6 { 7 this.InitializeComponent(); 8 } 9 }
如果Text="{x:Bind BindData}"绑定的属性有误,则编译时会报错。
模板中使用x:Bind
xaml:
xmlns:model="using:HelloWorld.Models"
1 <ListView x:Name="lv" ItemsSource="{x:Bind news}"> 2 <ListView.ItemTemplate>
<!--x:Bind 是强类型,必须在模板中声明数据类型--> 3 <DataTemplate x:DataType="model:NewsModel"> 4 <StackPanel> 5 <TextBlock Text="{x:Bind Title}" /> 6 <TextBlock Text="{x:Bind Text}" /> 7 </StackPanel> 8 </DataTemplate> 9 </ListView.ItemTemplate> 10 </ListView>
增加一个类:
namespace HelloWorld.Models { public class NewsModel { public string Title { get; set; } public string Text { get; set; } } }
后台代码:
1 ObservableCollection<NewsModel> news= new ObservableCollection<NewsModel>(); 2 3 public MainPage() 4 { 5 this.InitializeComponent(); 6 pictures.Add(new NewsModel() { Title= "Title1", Text = "Text1" }); 7 pictures.Add(new NewsModel() { Title= "Title2", Text = "Text2" }); 8 pictures.Add(new NewsModel() { Title= "Title3", Text = "Text3" }); 9 //此处无需对DataContext赋值了 10 }