我有这个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。
谁知道我做错了什么,或者我可以尝试什么?我不知道你的代码有什么问题,但这是有效的。
<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;