我有graph显示了许多视图模型。图中这些视图模型的外观由一组DataTemplates控制。
我想要进行Master-Detail视图,以便在选择图表中的某个View Models时,详细信息显示在UI的另一部分上。我遇到的问题是从图表中抓取鼠标点击。
我可以在我的图形中添加一个名为“SelectedItem”的属性,然后将详细信息视图绑定到它,但我不知道如何通过点击DataTemplate来设置SelectedItem基础。
图中显示的典型DataTemplate:
<!-- The master control -->
<Grid>
<Grid.Resources>
<DataTemplate DataType="{x:Type prove:JobVM}">
<!-- the view of this type in the Graph -->
</DataTemplate>
</Grid.Resources>
<prove:CustomGraph Graph={Binding JobGraph}/>
</Grid>
<!-- The detail control -->
<ContentControl Content="HOW DO I SET CONTENT TO BE THE SELECTED ITEM IN THE GRAPH?" >
<ContentControl.Resources>
<DataTemplate DataType="{x:Type prove:JobVM}">
<!-- the detail view -->
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
有什么想法吗?
答案 0 :(得分:1)
您可以在图形上添加MouseLeftButtonDown事件处理程序,并让处理程序通过某个Tag检查元素,然后您可以获取datacontext并相应地更新视图的viewmodel上的属性。然后,您可以将视图的详细信息部分绑定到此属性。
希望这会有所帮助:)
答案 1 :(得分:0)
您应该可以通过 RelativeSource.TemplatedParent 属性获取SelectedItem。