所以我有这个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时,它显示Items计数为0。
任何人都知道我做错了什么,或者我能尝试什么?
答案 0 :(得分:0)
我不知道您的代码有什么问题,但这样做有效。
<DataGrid ItemsSource="{Binding Mode=OneWay}" Name="Grid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Message}" Header="Message"/>
<DataGridTextColumn Binding="{Binding ControlID}" Header="ID"/>
</DataGrid.Columns>
</DataGrid>
ObservableCollection<ValidationMessage> Messages =
new ObservableCollection<ValidationMessage>();
this.DataContext = Messages;