一个新手绑定问题。我有多个用户控件在我mainview.xaml叫,如:如何将用户控件的属性绑定到MainViewModel并将其datacontext绑定到它自己的viewmodel?
<i:InkRichTextView RichText ="{Binding LastNote}" ... />
其中富文本是在InkRichTextView.xaml用户控件的代码隐藏依赖属性和LastNote是mainviewmodel的属性。
的MainViewModel通过在App.xaml中一个DataTemplate的方式与含蓄的MainView相关,如:
<DataTemplate DataType="{x:Type vm:MainViewModel}">
<v:MainView/>
</DataTemplate>
我想设置的用户控件InkRichTextView自身的视图模型,它的属性是在MainViewModel举行,是这样的:
<i:InkRichTextView RichText ="{Binding LastNote}" DataContext="{Binding ucFirstControl}" ... />
但是当我这样做,我的用户控制InkRichTextView失去了LastNote上下文(或失去在它的依赖属性访问代码隐藏,或两者?) 。
如何维护对LastNote的MainViewModel属性的绑定,并仍为用户控件提供单独的DataContext? (请记住,UserControl在其代码隐藏中定义了依赖项属性)。
感谢您的任何帮助。
啊哈,一个星期,另一人试图创建一个视图模型为他们的用户控件。想知道为什么你会遇到困难吗?这是因为*你不应该这样做*。想想看 - TextBox有一个ViewModel吗?不会。它暴露了你绑定* * ViewModel的属性。这就是你的UserControl应该做的。在这里看到更多的细节:http://stackoverflow.com/search?tab=newest&q=user%3a1228%20is%3aanswer%20usercontrol – Will 2014-12-08 15:34:45