Xaml 如何进行数据绑定?
我正在尝试用XAML做一些简单的数据绑定,但它对我不起作用,我也不知道为什么 我有这个网格视图Xaml 如何进行数据绑定?,xaml,windows-8,winrt-xaml,Xaml,Windows 8,Winrt Xaml,我正在尝试用XAML做一些简单的数据绑定,但它对我不起作用,我也不知道为什么 我有这个网格视图 <GridView Name="test2"> <GridView.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding
<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;
}
publicMyPage()
{
this.InitializeComponent();
测试t=新测试
{
Header=“Header 1”,
Item=“Item 1”,
};
列表ts=新列表();
ts.Add(t);
test2.DataContext=t;
}
我也试着给它一个收藏
正如我所说,我根本无法使用XMAL方法来完成这项工作。我认为您需要将GridView的
项源
绑定到集合中
尝试以下步骤:
MyPage
上创建属性:公共列表测试{get;set;}
test2.DataContext=t代码>带有测试=ts代码>
ItemsSource
属性,如下所示:
<GridView Name="test2" ItemsSource="{Binding Tests}">
要使其正常工作,至少要添加以下行:
test2.ItemsSource = ts;
但是你没有什么东西会在以后给你带来麻烦
DataContext
设置在这里没有多大意义,您的意思是要为绑定到网格的元素创建一个single项。通常,我会说DataContext将是一个包含测试集合的类——例如,这将是页面的DataContext,然后您将拥有
其中,Tests
是用作DataContext
的任何类的属性。您希望使DataContext成为您在代码中设置的唯一内容,然后所有其他内容都从绑定中流出列表
,而是想使用ObservableCollection
,以便在向集合中添加和删除项目时自动通知数据绑定引擎嗨,你的第一行行行。我有几个问题,你是说你应该创建一个类作为DataContent,这样你就可以对单个网格进行更多的绑定?第二个问题是,如果我想要一个项目集合,那么会发生什么?我是否也要进行ObservableCollection,以及我的绑定必须如何更改?对第一个问题是,该类成为您的ViewModel,它是页面的DataContext,然后您可以在XAML而不是代码中设置ItemsSource。如果您想让UI反映在列表中添加和删除项的时间,比如测试列表,那么“是”“使用ObservableCollection”,它封装了通知列表更改绑定结束的代码。对于单个项目,如测试本身,在为页面指定DataContext时,您将希望实现InotifyPropertyChanged。你是说我应该把虚拟机挂到页面而不是网格控件上吗?是的,这不是一个硬性的规则,DataContext可以在任何地方设置,但是当你正在学习如何工作时,这是最简单的方法。有很多很好的示例,包括数据绑定,at和默认网格和拆分模板还将演示如何在页面上设置DataContext,并绑定到ViewModel的集合