ObservabelCollection にバインドされた Datagrid があります。コレクションの項目を追加、削除すると、データグリッドは非常によく更新されますが、そのコレクションの項目のプロパティを変更すると、グリッドは更新されません。
グリッド定義:
<DataGrid x:Name="DatGridPlanillas" ItemsSource="{Binding ListaPlanillas,Mode=TwoWay}">
<DataGrid.Columns>
<DataGridTextColumn Header="{x:Static resources:Labels.GENERAL_IdDocumeto}" Binding="{Binding StrIdDocumento,Mode=TwoWay}" ClipboardContentBinding="{x:Null}"/>
<DataGridTextColumn Header="{x:Static resources:Labels.GENERAL_FechaCreacion}" Binding="{Binding DatFechaDocumento}" ClipboardContentBinding="{x:Null}"/>
</DataGrid.Columns>
</DataGrid>
変更点
DocumentsBO MiGestorDeDocumentos = new DocumentsBO(db);
foreach (MyEntity Doc in ListaPlanillas)
{
Documento DocumentoFinal = MiGestorDeDocumentos.NewDocIdByModule(_IntIdModulo);
Doc.StrIdDocumento = DocumentoFinal.StrIdDocumento;
Doc.IntIdDocumento = DocumentoFinal.IntIdDocumento;
Doc.PlanillaAcopioGenerada = true;
Doc.NumDocumentonumero = DocumentoFinal.NumDocumento;
db.entry(Doc).State = EntityState.Modified;
}
私が見つけた唯一の方法は、元のコレクションを空にしてから復元することです
db.SaveChanges();
ObservableCollection<MyEntity> _tmp = _ListaPlanillas;
ListaPlanillas = new ObservableCollection<MyEntity>();
ListaPlanillas = _tmp;
しかし、これは非常に単純なことを実行するための非常に醜い方法に思えます。コレクションのプロパティだけが変更されたときにグリッドを強制的に更新するにはどうすればよいですか?