2

ここでシナリオに直面しています。

wpf アプリケーションの MainWindow に追加された DataGrid を初期化するメイン クラスがあります。DataTable オブジェクトが ref によって渡されるスレッド クラスがあり、そのスレッドは DataTable の更新を担当します。スレッドが実行されると、DataTable は更新されますが、ビューは更新されません。

しかし、TimeTicker を介して DataSet が初期化されるメイン クラスの DataTable の行を更新/追加すると、後のスレッドを介して追加されたデータだけでなく、関係のない timeticker メソッドで追加されたデータも更新されます。

アブドゥル・ハリク

4

2 に答える 2

2

DataTableを更新する別のスレッド(これはUIスレッドとは異なると思います)があるとおっしゃいました。DataGridはUIスレッドで更新する必要があるため、これは正しく聞こえません。以下のような方法で、UIスレッドのグリッドを更新していることを確認します。これはあなたのコードを見ずに私の最善の推測です。

if (Dispatcher.CheckAccess())
{
    // already on UI thread
    UpdateDataGrid();
}
else
{
    // run UpdateDataGrid on UI thread
    Dispatcher.BeginInvoke(new YourDelegate(UpdateDataGrid), null);
}
于 2009-11-12T15:17:06.350 に答える
2

実際には、gd.items.refresh()が問題を解決したように、DGを更新する必要があります。

于 2009-11-16T13:06:14.707 に答える