WPF DataGrid не принимает события CollectionChanged? - PullRequest
0 голосов
/ 09 июля 2011

Итак, у меня есть эта 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 из bindings, ничего.

Когда я проверяю DataGrid во время выполнения, он показывает количество элементов равным 0.

Кто-нибудь знает, что я делаю неправильно или что я могу попробовать?

1 Ответ

0 голосов
/ 09 июля 2011

Я не знаю, что не так с вашим кодом, но это работает.

<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;
...