У меня есть ListView с GridView, который связан со свойствами класса, который реализует INotifyPropertyChanged, как это:GridViewColumn не подписавшись на PropertyChanged событие в ListView
<ListView Name="SubscriptionView" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" ItemsSource="{Binding Path=Subscriptions}">
<ListView.View>
<GridView>
<GridViewColumn Width="24" CellTemplate="{StaticResource IncludeSubscriptionTemplate}"/>
<GridViewColumn Width="150" DisplayMemberBinding="{Binding Path=Name}" Header="Subscription"/>
<GridViewColumn Width="75" DisplayMemberBinding="{Binding Path=RecordsWritten}" Header="Records"/>
<GridViewColumn Width="Auto" CellTemplate="{StaticResource FilenameTemplate}"/>
</GridView>
</ListView.View>
</ListView>
Класс выглядит следующим образом:
public class Subscription : INotifyPropertyChanged
{
public int RecordsWritten
{
get
{
return _records;
}
set
{
_records = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("RecordsWritten"));
}
}
private int _records;
...
}
Поэтому я запускаю BackgroundWorker и начинаю записывать записи, обновляя свойство RecordsWritten и ожидая изменения значения в пользовательском интерфейсе, но это не так. Фактически, значение PropertyChanged в объектах Subscription равно null. Это головоломка, потому что я думал, что WPF должен подписаться на событие PropertyChanged объектов данных, которые реализуют INotifyPropertyChanged. Я здесь что-то не так?