数据绑定- WPF DataGrid不拾取CollectionChanged事件



我有这个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;

最新更新