我有绑定ObservableCollections的问题。其他属性(字符串)都可以。这是我的代码:
MainWindow.xaml
<StackPanel>
<TextBlock Text="{Binding Title}"/>
<ItemsControl ItemsSource="{Binding Data}">
<TextBlock Text="{Binding B}"/>
</ItemsControl>
</StackPanel>
MainWindow.xaml.cs
public MainWindow()
{
InitializeComponent();
DataContext = new MainWindowVm();
}
MainWindowVm
class MainWindowVm
{
public ObservableCollection<A> Data;
public string Title { get; set; } = "HELLO WORLD";
public MainWindowVm()
{
Data = new ObservableCollection<A>() {new A() {B = "X"}, new A() {B = "X"}};
}
}
class A
{
public string B { get; set; }
}
我究竟做错了什么?
好的,正如其他人已经提到的那样,你需要将Data
字段更改为属性。
public ObservableCollection<A> Data { get; set; }
摆脱错误
在使用ItemsSource之前,项集合必须为空。
将您的XAML更改为:
<StackPanel>
<TextBlock Text="{Binding Title}"/>
<ItemsControl ItemsSource="{Binding Data}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding B}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>