我的TreeView
包含ServerItem
类型的对象,后者又包含DatabaseItem
类型的对象。 Xaml看起来像这样:
<TreeView Grid.Column="0" HorizontalAlignment="Stretch" DockPanel.Dock="Left" ItemsSource="{Binding Path=ServerItems, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<cmd:EventToCommand Command="{Binding ConnectServer}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource AncestorType={x:Type TreeView}}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Databases}">
<TextBlock Text="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
现在 - 绑定到ConnectServer
工作正常,但我有另一个命令 - ConnectDatabase
,我希望当用户双击TreeViewItem
时包含的ServerItem
时执行该命令} TreeViewItem
。换句话说 - 是否可以根据对象类型绑定WPF中的命令(这样第一级项目将具有除第二级,第三级(等等)项目之外的其他命令绑定)?
答案 0 :(得分:0)
您可以使用ItemTemplateSelector。
通过将此技术与多个Hierarchical DataTemplates结合使用,您应该达到目标。