2017-07-20 23 views
0

こんにちは、私はそれらのいくつかを試してみましたが、それはうまくいかないようです。 として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; 

何もしていません:(

+0

すべてがUIスレッドで実行されている場合、UIはアイドルフェーズになるまで更新されません。バックグラウンドスレッドではなくUIスレッド内で実行する必要がある場合は、 'Dispatcher'を使用してUIのアイドルアクションを呼び出して更新することができます。 – Adwaenyth

+1

"コマンドラインやその他のコードを実行してください。"これは何を意味するのでしょうか?あなたのフル*コードを表示してください。 – mm8

答えて

1

ObservableCollectionをプロパティとして設定し、ItemsSourceをバインドする必要があります。このような 何か:コードビハインド

<DataGrid ItemsSource="{Binding stepResult}"/> 

そして、このような

private ObservableCollection<StepResult> _stepResults; 
public ObservableCollection<StepResult> StepResults 
{ 
    get { return _stepResults; } 
    set 
    { 
     if (_stepResult == value) 
      return; 
     _stepResults = value; 
     OnPropertyChanged(); 
    } 
} 

と設定のDataContextは:

progress.DataContext = this; 

これは動作するはずです。少なくともほとんどいつも私のためにしました。

+0

は試しましたが動作しません – Jester

+0

コレクションを塗りつぶした後にデータソースを設定しようとしましたか?コレクションの新しいインスタンスを生成しますか? – lightlike

+0

私は幸運でItemsSourceを再び設定しようとしました。コレクションの新しいインスタンスを作成しません。 – Jester

関連する問題