コードでバインディングを設定する必要があります。
私はそれを正しくすることができないようです。
これは私が試したものです:
XAML:
<TextBox Name="txtText"></TextBox>
コードビハインド:
Binding myBinding = new Binding("SomeString");
myBinding.Source = ViewModel.SomeString;
myBinding.Mode = BindingMode.TwoWay;
myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(txtText, TextBox.TextProperty, myBinding);
ViewModel:
public string SomeString
{
get
{
return someString;
}
set
{
someString= value;
OnPropertyChanged("SomeString");
}
}
プロパティを設定しても更新されません。
何が間違っていますか?
これを試して:
Binding myBinding = new Binding();
myBinding.Source = ViewModel;
myBinding.Path = new PropertyPath("SomeString");
myBinding.Mode = BindingMode.TwoWay;
myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(txtText, TextBox.TextProperty, myBinding);
(コンストラクタで行うように)path
を指定する場合、ソースはViewModel
である必要があり、.SomeString
部分はパスから評価されます。
ソースをviewmodelオブジェクトに変更する必要があります。
myBinding.Source = viewModelObject;