提问人:Mythos 提问时间:11/15/2023 最后编辑:Mythos 更新时间:11/16/2023 访问量:41
除非绑定模式更改,否则不显示 WPF DataGrid 数据
WPF DataGrid data not showing unless binding mode changed
问:
我们有一个绑定到对象“Test”的 ObservableCollection,其中 Test 继承自 INotifyPropertyChanged。但是,尽管填充了 ObservableCollection 并运行 OnPropertyChanged,但 DataGrid 在运行时仍为空。
更令人困惑的是,我们有一个非常相似的 DataGrid,以相同的方式设置,但数据稍微复杂一些,并且工作正常。此外,如果我们在调试时更改绑定模式,数据将显示在表中,并且可以按预期进行更新。
下面复制了 DataGrid 的 Xaml 和 ObservableCollection 属性
<DataGrid Name="NonFunctioningTable" ItemsSource="{Binding PopulatedList, Mode=TwoWay}" Height="388" AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="false" ColumnWidth="*" Margin="0,10,0,0">
<DataGrid.Columns>
<DataGridTextColumn Header="Column1" Binding="{Binding ObjectProperty1}" />
<DataGridTextColumn Header="Column2" Binding="{Binding ObjectProperty2}" />
</DataGrid.Columns>
</DataGrid>
private ObservableCollection<Test> populatedList;
public ObservableCollection<Test> PopulatedList
{
get => populatedList;
set
{
populatedList = value;
OnPropertyChanged();
}
}
答:
0赞
Mythos
11/16/2023
#1
我们已经解决了这个问题。
MainWindow.cs 中的一行是在开发之初添加的,在添加 ViewModel 之前,将表的 ItemSource 设置为 null,从而删除了绑定。
评论
Mode
ItemsSource
TwoWay