我想在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