2017-09-14 63 views
0

我有一个WPF应用程序,有一个树形视图。有一个分层的项目模板。我应该在绑定中写入什么路径?

我想将图像源绑定到我用作TreeViewItem的数据类,即RestoreItemVM。我需要在路径中写什么?一切,我尝试了我的转换器远远扔了一个错误,说是不能将它转换为RestoreItemVM ...

<TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="restoreTab:RestoreItemVM"> 
     <DockPanel VerticalAlignment="Center" HorizontalAlignment="Left" LastChildFill="False"> 
      <CheckBox Focusable="False" VerticalAlignment="Center" IsChecked="{Binding IsChecked}" PreviewMouseRightButtonDown="TreeViewItem_OnPreviewMouseRightButtonDown"/> 
      <Image Width="20" Margin="3" 
        Source="{Binding RelativeSource={RelativeSource 
          FindAncestor, AncestorType={x:Type TreeViewItem}, 
          AncestorLevel=2}, Converter={x:Static local:RestoreItemToImageConverter.Instance}, 
          Path= ????? }" 
        PreviewMouseRightButtonDown = "TreeViewItem_OnPreviewMouseRightButtonDown"/> 
     </DockPanel> 
    </HierarchicalDataTemplate> 
</TreeView.ItemTemplate> 

回答

1

你需要指定路径的数据上下文:

Source="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}}, Converter={x:Static local:RestoreItemToImageConverter.Instance}, 
     Path=DataContext}" 

但实际上,它是更简单,因为RestoreItemVM已经是Image的DataContext,您不需要找到它的祖先。相反,试试这个:

<Image ... Source="{Binding Path=., Converter={x:Static local:RestoreItemToImageConverter.Instance}}" /> 

Path=.结合到DataContext本身:

Special symbols in WPF binding - what does "{Binding Path=.}" mean?

而且在HierarchicalDataTemplateDockPanelDataContextItemsSource当前RestoreItemVM对象。

+0

嗯..这实际上有效。你能否在我接受之前添加更多解释 - 比如Path =是什么。意味着? –

+0

Path =。意味着绑定到DataContext本身:https://stackoverflow.com/questions/1066262/special-symbols-in-wpf-binding-what-does-binding-path-mean – mm8

+0

我增加了一些信息。请批准,我会接受 –

相关问题