2017-09-14 59 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

我增加了一些信息。請批准,我會接受 –

相關問題