我有一个显示类似于地理地图的视图,我在这个视图中有一些UserControls
,每个显示有关DataContext的相关信息,但是每个都来自不同的视角,所以说
然后,我的目标是将鼠标悬停在一个UserControl上,突出显示每个UserControl中的一个功能,当然这个突出显示的视觉风格对每个UserControl都是特定的。
例如,如果我在地图中有一个路径,并且在图表中绘制了它的高程轮廓,我想将鼠标悬停在高程轮廓上,动态地在该图形上显示一条垂直线,同时一些标记将在地图中动态显示,反之亦然。
我可以通过在View本身中使用一些数值来实现,在每个UserControl中都是双向数据绑定,但是存在一些概念上的问题:
Slider
并使用折叠可见性,并对每个UserControl使用ElementBinding,但是,如何在View和包含的UserControl之间进行ElementBinding?所以,主要问题是:
如何将View中的单个属性(不在ViewModel!中)绑定到给定View中包含的许多UserControl?
如果一切都是单一的单片视图,使用ElementBinding对我来说是明显的选择,但是对于不同的类(一个View和许多UserControls),我不知道如何做ElementBinding,或者即使它是正确的做我想做的事。
答案 0 :(得分:1)
我可能会错过您的问题,但为什么不简单地将依赖属性添加到View并将其绑定到包含的UserControls?
<YourView x:Name="yourView">
<YourUserControl SomePropertyOfYourUserControl="{Binding ElementName=yourView, Path="YourView's DependencyProperty"/>
<YourSecondUserControl SomePropertyOfYourSecondUserControl="{Binding ElementName=yourView, Path="YourView's DependencyProperty"/>
</YourView>
-
编辑以完成我的回答:
你说:
经典数据绑定会在ViewModel
中按下属性
..但它不一定必须这样做,因为你也可以绑定到View中的依赖属性(在其代码隐藏中)。