【发布时间】:2011-07-08 22:14:49
【问题描述】:
所以我有这个 DataGrid:
<DataGrid d:DataContext="{d:DesignData Source=../DesignData/ValidationMessages.xaml}" DataContext="{Binding Messages, Mode=OneWay}" ItemsSource="{Binding Mode=OneWay}" Name="Grid">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Message}" Header="Message"/>
<DataGridTextColumn Binding="{Binding ControlID}" Header="ID"/>
</DataGrid.Columns>
</DataGrid>
我有这个属性:
public ObservableCollection<ValidationMessage> Messages = new ObservableCollection<ValidationMessage>();
我有这个代码:
Messages.Add(message);
并且 DataGrid 没有显示更改。应该是吧?我觉得我已经这样做了一百万次,但由于某种原因它不起作用。
我已将整个控件的 DataContext 设置为它自己的代码隐藏,没有运气。我试过弄乱绑定的 BindingMode,什么都没有。
当我在执行期间检查 DataGrid 时,它显示项目计数为 0。
有人知道我做错了什么,或者我可以尝试什么吗?
【问题讨论】:
-
您是否随时更改 Messages 集合本身? (在其他地方还有其他
Messages = something;吗?)您是否会在任何地方弄乱代码中的 itemssource 或 datacontext?您是否在输出窗口中看到任何绑定警告/错误?
标签: wpf data-binding wpfdatagrid