如何在代码中设置绑定? [英] How to set a binding in Code?
本文介绍了如何在代码中设置绑定?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在代码中设置绑定。
我似乎没法找到它。
这是我试过的:
XAML:
< TextBox Name =txtText>< / TextBox>
代码背后:
绑定myBinding = new Binding(SomeString);
myBinding.Source = ViewModel.SomeString;
myBinding.Mode = BindingMode.TwoWay;
myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(txtText,TextBox.TextProperty,myBinding);
ViewModel:
code> public string SomeString
{
get
{
return someString;
}
set
{
someString = value;
OnPropertyChanged(SomeString);
}
}
当我设置它时,该属性不会更新。
我做错了什么?
解决方案
尝试这样: / p>
绑定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);
如果您指定路径
(像你一样在构造函数中),您的源应该只是 ViewModel
, .SomeString
部分是从路径中计算的。 >
I have the need to set a binding in code.
I can't seem to get it right tho.
This is what i have tried:
XAML:
<TextBox Name="txtText"></TextBox>
Code behind:
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");
}
}
The property is not updating when i set it.
What am i doing wrong?
解决方案
Try this:
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);
If you specify path
(like you do in constructor), your source should be just ViewModel
, the .SomeString
part is evaluated from the path.
这篇关于如何在代码中设置绑定?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文