更改绑定值,而不是绑定本身
我有一个包含 DependencyProperty (MyProperty) 的 WPF UserControl。
DependencyProperty 绑定到 DataContext 中的属性。
现在在 UserControl 中我想更改绑定属性的值。但是,如果我分配 MyProperty = NewValue
绑定就会丢失并被 NewValue 取代。
我想要实现的是更改 DependencyProperty 所绑定的 DataContext 属性。
我如何实现这一目标而不是更改绑定?
澄清一下:使用类似 MyTextBox.Text = "0";
我将释放绑定。我将如何设置 Text,保持绑定不变,以便 Text 绑定的属性也会改变。
I've got a WPF UserControl containing a DependencyProperty (MyProperty).
The DependencyProperty is bound to a Property in the DataContext.
Now in the UserControl I want to change the value of the bound property. But if I assign MyProperty = NewValue
the Binding is lost and replaced by NewValue.
What I want to achieve is change the DataContext-property the DependencyProperty is bound to.
How do I achieve this instead of changing the binding?
To clarify: using something like MyTextBox.Text = "0";
I'll release the binding. How would I set Text, leave the binding intact so the property Text is bound to will change, too.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用SetCurrentValue。
You can use SetCurrentValue.
如果没有看到你的代码,我无法判断你做错了什么。下面是一个简单的用户控件,允许用户选择颜色。
I can't tell what you are doing wrong without seeing your code. Below is a simple usercontrol that allows users to pick a color.
这应该按原样工作,唯一的问题是当文本框失去焦点时,文本框绑定到的绑定源将被更新。这是默认行为。您可以通过在绑定中指定
UpdateSourceTrigger=PropertyChanged
来更改它。就像这样:This should work as is, the only problem is that binding source the text box is bound to will be updated when the text box loses focus. This is the default behavior. You can change it by specifying
UpdateSourceTrigger=PropertyChanged
within your binding. Like so: