【发布时间】:2020-04-02 15:50:54
【问题描述】:
我想将 CommandParameter 绑定到另一个 ViewModel,然后是 Command。 命令绑定从树视图的集合中跳出到包含“项目”的 ViewModel - 集合。但是 CommandParameter 应该从“Children”传递 ViewModel。 如果我只是做 {Binding} 它会传递错误的 ViewModel。 (“Items”集合所在的那个)
<TreeView
ItemsSource="{Binding Items}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal"
CanHorizontallyScroll="True">
<CheckBox VerticalAlignment="Center"
IsChecked="{Binding IsSelected}"/>
<TextBlock VerticalAlignment="Center"
FontSize="14"
Text="{Binding Name}"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ContextMenu>
<ContextMenu>
<MenuItem Header="Set Script-Root"
Command="{Binding Path=DataContext.SomeCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
CommandParameter="{Binding HOW_TO_VIEWMODEL_of_TREEVIEW-ITEMS???}"/>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
【问题讨论】: