【发布时间】:2012-10-14 15:55:18
【问题描述】:
假设这种情况:
我用 DependencyProperty“SuperValue”创建了一个新控件(“MyControl”)。
现在,在 XAML 中,我将“SuperValue”设置为“TestValue”:
<local:MyControl SuperValue="TestValue" />
此控件有一个 ViewModel (DataContext)。
我想将 DependencyProperty 的值(在本例中为“TestValue”)传递给 ViewModel 中的属性。
我该怎么做?
假设我的控件的 ViewModel 做了一些计算,例如:用户输入国家名称,控件给他一个当前存在的时间。
问题是:如何提供计算结果?假设这是 ViewModel 中的公共属性“Results”。我想创建一个像“TextBox.Text”、“ListView.SelectedItem”这样的属性,它向“外部”提供一部分 ViewModel 数据。
例如TextBox和Text属性:
<TextBox Text={Binding GiveMeTextValue} />
在这种情况下,DP“文本”提供给当前存储输入文本的 ViewModel 属性之外。
我想以同样的方式使用我的控件。
【问题讨论】:
-
我们能否获得更多关于“无法设置”的上下文?你试过什么?您是否遇到编译错误或运行时异常,或者应用程序在您期望的时候什么也不做?
-
无法设置的
MyDependencyProperty在哪里? -
我添加了有问题的新信息。
标签: c# wpf mvvm binding dependency-properties