WPF MVVM:我有一个自定义的usercontrol,获取该值并在ViewModel中设置另一个

时间:2014-02-12 22:53:42

标签: c# wpf mvvm

我正在访问MyCustomControl X值作为文本框中的默认值。

我以前在xaml中有这个

 <TextBox x:Name="NumX" Text="{Binding Y}" />

Y获取NumX中的值。但是,现在我想将Y的值默认为MyCustomControl中引用的值。

现在我改为:

 <TextBox x:Name="NumX" Text="{Binding ElementName=MyCustomControl, Path=X}" />

如何将Y属性值更新为NumX中的值?这当前使Y值为null,因为它从未设置。我看了触发器和多重绑定,但对我来说没有意义,他们是正确的方法。

2 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是在MyCustomControl上创建依赖项属性;这会暴露属性,并允许您将ViewModel属性绑定到它。

因此,如果向MyCustomControl添加YProp依赖项属性,则可以执行以下操作,假设ViewModel是自定义控件的DataContext,并且ViewModel中具有匹配的属性Y

<local:MyCustomControl YProp="{Binding Y}" />

答案 1 :(得分:0)

我最后在后面的代码中做了这件事。创建自定义控件并设置MVVM使得这个问题不易解决。