0

私はWPFアプリケーションを開発しています。がDataGrid入っています。ItemSourceデータグリッドの をIEnumerableコレクションに割り当てました。窓に がありTreeviewます。ツリービューの要素をクリックすると、データグリッドをロードする必要があります

private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
       this.dataGrid1.ItemsSource = null;

       this.dataGrid1.Visibility = Visibility.Visible;
       this.dataGrid1.ItemsSource = objref.FinalValue;
       // Where Objref.FinalValue is an IEnumerable collection. 
       grid_data = objref.FinalValue;
}

しかし、問題は、selectionが変更されるたびに、 の値がdatagrid上書きされずに追加されることです。データグリッドをフラッシュしdataGrid1.Columns.Clear()、後でが追加さdataGrid.ItemSource = null;れていることがわかりました。objref.FinalValueしたがって、データグリッドをフラッシュしても、値全体が表示されます..

objrefだから私が使用したインスタンスとして持っているクラスで

   private IEnumerable Result;

   public IEnumerable FinalValue
   {
       get { return Result; }
       set { Result = value; }
   }
   // Update Result with values so that it can be assigned to datagrid.

追加ではなく上書きする必要があります。しかし、FinalValue毎回追加されています。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

ItemsSourceグリッドがレンダリングされた後に更新するたびに、dataGrid1.Items.Refresh()それを更新するために呼び出す必要があります。データグリッド行を呼び出しRefresh()た後、それにバインドされている新しいコレクションが反映されます。

于 2013-01-24T05:38:49.857 に答える