こんにちは、私はそれらのいくつかを試してみましたが、それはうまくいかないようです。 としてgrid
にリンクされているコレクションにアイテムを追加してから、コマンドラインやその他のコードを実行します。WPFデータグリッドは更新されていません
問題
最初の行が現れるが、その後、私は行を追加することができますが、それらはgrid
に表示されません。
私のコード:
ビュー
<DataGrid Margin="5" Name="progress"
AutoGenerateColumns="False"
CanUserAddRows="False"
SelectionMode="Extended"
SelectionUnit="Cell"
Height="150"
ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Header="" Width="370" Binding="{Binding Action}" IsReadOnly="True" />
<DataGridTextColumn Header="" Width="100" Binding="{Binding Success}" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
コード
ObservableCollection<StepResult> stepResults;
stepResults = new ObservableCollection<StepResult>();
progress.DataContext = stepResults;
private void Updater_StepStart(object sender, ScriptInterpreter.Events.StepEventArguments e)
{
stepResults.Add(new StepResult
{
Action = e.StepName,
Success = true
});
}
の背後に私がこれまでに試した何:
progress.UpdateLayout();
progress.ItemsSource = null;
progress.ItemsSource = stepResults;
何もしていません:(
すべてがUIスレッドで実行されている場合、UIはアイドルフェーズになるまで更新されません。バックグラウンドスレッドではなくUIスレッド内で実行する必要がある場合は、 'Dispatcher'を使用してUIのアイドルアクションを呼び出して更新することができます。 – Adwaenyth
"コマンドラインやその他のコードを実行してください。"これは何を意味するのでしょうか?あなたのフル*コードを表示してください。 – mm8