2013-04-23 47 views
2

在我的WPF TreeView中,我定義了一個HierarchicalDataTemplate。在它的ItemTemplate中,有一個按鈕,其Command我需要綁定到父視圖模型,這是父HierarchicalDataTemplateDataContext,或者換句話說,在下面的示例中保存集合SubItems的ViewModel。 ItemTemplate自己DataContext - 子項目 - 將被用作CommandParameter如何從其ItemTemplate XAML綁定到HierarchicalDataTemplate的DataContext?

<TreeView ItemsSource="{Binding Items}"> 
    <TreeView.ItemTemplate> 
     <HierarchicalDataTemplate ItemsSource="{Binding SubItems}">     
      <HierarchicalDataTemplate.ItemTemplate> 
       <DataTemplate> 
        <Button Command="??CmdOnDtaCntxtOfHierDtaTmplt" 
          CommandParameter="{Binding}" />         
       </DataTemplate> 
      </HierarchicalDataTemplate.ItemTemplate> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

這怎麼能只XAML來完成?

回答

3

下面結合應該工作:

<Button Command="{Binding DataContext.Command, 
     RelativeSource={RelativeSource AncestorLevel=2, AncestorType=TreeViewItem}}" 
     CommandParameter="{Binding}" /> 

這將綁定到DataContext的Command屬性(在你的情況下保存收集子項目的VM)相關聯的樹型視圖,它是當前的父樹型視圖。

+0

它確實有效,正是我在尋找的東西,非常感謝! – Marc 2013-04-23 10:14:21