从DataTemplate设置Selected Item

时间:2011-06-23 19:44:30

标签: wpf binding

我有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>

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以在图形上添加MouseLeftButtonDown事件处理程序,并让处理程序通过某个Tag检查元素,然后您可以获取datacontext并相应地更新视图的viewmodel上的属性。然后,您可以将视图的详细信息部分绑定到此属性。

希望这会有所帮助:)

答案 1 :(得分:0)

您应该可以通过 RelativeSource.TemplatedParent 属性获取SelectedItem。