C#での画面表示のバインドについて(イベントハンドラ経由で画面を更新させたい)
ModelView側で以下のようなデータプロパティを持っており、
public ObservableCollection<DispData> DispCollection { get; set; }
DispDatanに以下のようなデータを持っています
public string Test { get; set; }
View側で以下のようにバインドしています。
<DataGrid ItemsSource="{Binding DispCollection}">
~
<DataGridTextColumn Header="test" Binding="{Binding Test}" IsReadOnly="True"/>
~
ModelViewのコンストラクタで、以下としていると、無事に表示できていることが確認できたのですが、
this.DispCollection.Add(new DispData { Test = "A" });
たとえば、以下のような別のプロパティイベントハンドラの値によって、
DispCollectionにAddする、もしくは現状のデータを更新したい場合はどのようにすべきなのでしょうか?
private static void DataChanged(object sender, PropertyChangedEventArgs e)
{
}
staticであるため、「this.DispCollection」でアクセスできずに困っています。
ModelViewのインスタンスをstaticにして、Instance.DispCollectionでは…と思って試してみたのですが、
画面は更新されませんでした…。
private static TestViewModel instance = new TestViewModel();
public static TestViewModel Instance
{
get{
return mInstance;
}
}