我正在使用这里的代码:WPF/MVVM - 如何处理在 ViewModel 中双击 TreeViewItems?,来自接受的答案。我的 xml 是这样的:
<TreeView CommandBehaviors:MouseDoubleClick.Command="{Binding ConnectServer}" CommandBehaviors:MouseDoubleClick.CommandParameter="{Binding Path=SelectedItem, RelativeSource={RelativeSource Self}}"
Grid.Column="0" HorizontalAlignment="Stretch" DockPanel.Dock="Left" ItemsSource="{Binding Path=ServerItems, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="CommandBehaviors:MouseDoubleClick.Command" Value="{Binding ConnectDb}"/>
<Setter Property="CommandBehaviors:MouseDoubleClick.CommandParameter" Value="{Binding Path=SelectedItem, RelativeSource={RelativeSource Self}}"/>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Databases}">
<TextBlock Text="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
来自 Style 标记的附加命令不起作用,因为 TreeView 标记级别上已经附加了一个命令,所以它不应该起作用。我要做的是为顶级孩子执行一个命令,为低级孩子执行另一个命令。我怎么做?
编辑:
所以,正如 Viv 所建议的 - 我如何检查 treeviewitem 是否是根节点?