我应该在绑定中写什么路径?

What path should I write in the binding?

我有一个带有树视图的 WPF 应用程序。有一个分层的项目模板。

我想将图像源绑定到数据 class 我正在用作 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>

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

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?

HierarchicalDataTemplate中的DockPanelDataContextItemsSource中的当前RestoreItemVM对象。