この動的クラスが欲しい
class FooViewModel : INotifyPropertyChanged {
private Dictionary<string, object> data = new Dictionary<string, object>();
public void Set(string path, object value)
{
data[path]=value;
NotifyPropertyChanged(path);
}
public object Get(string path)
{
if(data.ContainsKey(path)){
return data[path];
}else{
return null;
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged( String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
two way bind
これを DataContext として WPF XAML に設定すると、その中のキーにデータバインドできるようになります。
<TextBox Text="{Bind Path=Foo}"/>
<TextBox Text="{Bind Path=Bar}"/>
そして、私のビューモデルコードのどこかに私は持っています
var vm = new FooViewModel();
vm.Set("Foo", "Yeah!");
vm.Set("Bar", "Booh!");
このようなカスタムバインディングを行うためのトリックは何ですか?