0

これは単純な問題のように思えますが、修正方法がわかりません。

データグリッド内のすべてを削除するコマンドにバインドされたwpfのデータグリッドがありました。コマンドは、データとビジュアルの両方で更新されました。ただし、確認ウィンドウなしですべてを削除するのは賢明ではないため、ボタンを DeleteAllLinesConfirmation ウィンドウを開くように変更しました。

ここで、新しい確認ウィンドウから同じ関数を呼び出すと、データは更新されますが、グリッドは視覚的に更新されません。ポップアップ ウィンドウのビューから OnPropertyChanged を呼び出してみましたが、OnPropertyChanged が存在するセットが適切に呼び出されることを確認しました。なぜ更新されないのか、さっぱりわかりません。古いビューに焦点が合わなくなったからですか?

4

1 に答える 1

0

これ以上の情報がなければ、それは確かに焦点の問題だと思います。代わりに標準の MessageBox を使用してみてください。これにより、ウィンドウよりもはるかにフォーカスを絞ることができ、コードを完全に DeleteEverything() 内で実行できるようになります。MessageBoxResult を使用して、MessageBox.Show("blahblahblah") が返された後に DeleteEverything() 内のすべてを実際に削除するかどうかを決定できます。

于 2013-07-16T23:54:38.313 に答える