我工作的一个UserControl
,它是由一个Chart
面板,并且其一些操纵图表数据即图表对照(图的变色,启用或图表上禁用的东西等)的另一区域。将两个UserControl绑定到相同的DataContext或ViewModel?
我使用ViewModel
来管理图表及其数据,但一直在想,如果从图表控制区域中创建一个单独的用户控件以防止我的xaml变大并分离出组件,那将会很不错。
如果我这样做虽然,因为控件将需要处理来自Chart
ViewModel
的数据,应该怎么处理它?我可以将Chart
控件的DataContext
绑定到Chart
的DataContext
,所以我只有一个ViewModel
?我应该让自己的图表控件拥有自己的视图模型,然后让图表面板和图表控件viewmodel以某种方式进行交谈?
或者只是忘了一个单独的用户控件,并将所有东西放到一个大的viewmodel/xaml控件中?
在这种情况下,人们会推荐什么?
很酷,这绝对会为我简化一些事情。你能提供一个小例子或链接,告诉我如何将每个DataContext绑定到同一个对象实例,或者将一个控件的DataContext绑定到另一个控件的DataContext上?要么应该工作,但我还没有找到语法。谢谢! – Nicros 2010-01-29 17:21:36
想通了,似乎工作还行。 在孩子UserControl: DataContext =“{Binding DataContext,RelativeSource = {RelativeSource FindAncestor,AncestorType = {x:Type local:SpectraView}}}” – Nicros 2010-01-29 22:36:58
请注意相关的源数据绑定。在运行时可能会非常昂贵!为什么不通过它的名字直接绑定到其他元素? – 2010-02-02 00:14:56