我想在XAML中做一些简单的数据绑定,但它不适合我,我不知道为什么。如何做数据绑定?
我有这样的GridView
<GridView Name="test2">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Header}" FontWeight="Bold" Style="{StaticResource ItemTextStyle}"/>
<TextBlock Text="{Binding Item}" FontWeight="Bold" Style="{StaticResource ItemTextStyle}"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
我想现在绑定。我试图做到这一点在XMAL(崩溃),并通过C#代码(无反应)
在后面的构造函数的代码我试图做到这一点
public MyPage()
{
this.InitializeComponent();
Test t = new Test
{
Header = "Header 1",
Item = "Item 1",
};
List<Test> ts = new List<Test>();
ts.Add(t);
test2.DataContext = t;
}
我也试图通过它的一个集合,以及。
正如我所说,我无法得到XMAL的方式来做到这一点。
嗨,你的第一条线的作品。我有几个问题,但是你说你应该将一个Class作为DataContent,这样你可以对单个网格做更多的绑定?第二个问题是,如果我想要制作该ObservableCollection的项目集合会发生什么情况,以及我的绑定如何更改? – chobo2
是的第一个问题 - 该类成为您的ViewModel,它是您的页面的DataContext,然后您可以在XAML中设置ItemsSource而不是代码。如果您希望界面反映何时添加项目并将其从列表中移除(如测试列表),那么是使用ObservableCollection,它会封装通知列表更改的绑定结束的代码。对于单个项目,如测试本身,您需要实现INotifyPropertyChanged –
当您为页面指定DataContext时。你是说我应该把虚拟机挂到页面而不是网格控件? – chobo2