如何在WPF中向同一个依赖项属性添加多个绑定?

时间:2012-03-23 22:17:36

标签: wpf mvvm

另一个WPF问题给你们所有人。

我有一个包含文本框和按钮的用户控件。该按钮打开“文件夹选择”对话框;当用户选择文件夹时,文本框应填充用户选择的路径。这很好。

在用户控件内部,我有一个名为Path的依赖项属性。当用户进行选择时,Path会更新,并且绑定到它的文本框也会更新。这很有效。

现在,父视图还需要知道此Path值是什么。从这里做什么?

我假设我们应该在名为Path的父视图模型中添加一个属性。很容易 - 然后我们将它绑定到什么?用户控件的Path依赖属性?它可以同时绑定到父视图模型和用户控件的文本框吗?

我尝试添加用户控件属性但没有成功:

<v:MyControl Path="{Binding ViewModels:MyViewModel.Path}" ... />

没有错误,它只是没有更新视图模型。如果这种方法可行,我可以发布更多的代码。

enter image description here

2 个答案:

答案 0 :(得分:4)

一个属性可以只是一个绑定的目标,但它可以是你想要的尽可能多的绑定的源(即值“来自”)...所以是的,你可以绑定一个属性父视图Path的{​​{1}}属性。

答案 1 :(得分:3)

依赖属性可以是多个绑定的来源,是的。仅仅谈到视图,我可以有一个主滑块,其中有五个文本框绑定到它的值,这样就可以了。

但是,由于您居住在MVVM中,因此使用视图模型的更改通知属性作为此屏幕的单一真实来源可能更为合理。用户控件写入此属性,父视图从中读取,就像那样简单。

经验法则:如果多个视图级组件需要访问属性,请将它们绑定到视图模型,而不是彼此绑定。