ObservableCollection绑定不能按预期工作[重复]

问题描述 投票:-2回答:1

我有绑定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; }
}

结果enter image description here

我究竟做错了什么?

c# wpf
1个回答
3
投票

好的,正如其他人已经提到的那样,你需要将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>
© www.soinside.com 2019 - 2024. All rights reserved.