我应该在绑定中写什么路径?
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
中的DockPanel
的DataContext
是ItemsSource
中的当前RestoreItemVM
对象。
我有一个带有树视图的 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
中的DockPanel
的DataContext
是ItemsSource
中的当前RestoreItemVM
对象。