Мой PropertyChanged работает нормально для всех объектов, которые у меня есть на моей странице, которые не привязаны к датагридам, которые корректно работают с начальным связыванием, но затем теряют упомянутое связывание, когда я изменяю или сбрасываю связанное свойство.
Обратите внимание, что я пытался использовать ObservableCollection и получил тот же результат.
<DataGrid AutoGenerateColumns="False" Height="263" HorizontalAlignment="Left" Margin="50,120,0,0" ItemsSource="{Binding Files}" Name="dg_Display" VerticalAlignment="Top" Width="313">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding FileName}" Header="File Name" />
<DataGridTextColumn Binding="{Binding Date}" Header="Date" />
<DataGridCheckBoxColumn Binding="{Binding Stack}" Header="Stack" />
</DataGrid.Columns>
</DataGrid>
private List<StackModel.Display> m_files;
public List<StackModel.Display> Files
{
get { return m_files ?? (m_files = StackModel.ListFiles(Path)); }
set
{
m_files = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Files"));
}
}
}
private DelegateCommand m_directory;
public ICommand DirectoryCommand { get { return m_directory ?? (m_directory = new DelegateCommand(Directory)); } }
private void Directory()
{
Files = StackModel.ListFiles(Path);
}
public List<Display> ListFiles(string path)
{
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] files = dir.GetFiles("*.xlsx");
return files.Select(fileEntry => new Display {Date = fileEntry.LastWriteTime, FileName = fileEntry.Name, Stack = true}).ToList();
}