我正在尝试使用MVVMLight将TreeViewItem Selected事件绑定到命令。
TreeViewItem是在HierarchicalDataTemplate中定义的,因此我无法添加Interaction.Triggers(如下所示)
<HierarchicalDataTemplate
x:Key="TreeViewItemTemplate"
ItemsSource="{Binding ChildReportViewModels}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Selected">
<MvvmLight_Command:EventToCommand Command="{Binding LoadReportCommand, Mode=OneWay}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</HierarchicalDataTemplate>
我还可以将EventTrigger添加到每个TreeViewItem吗?
感谢。
答案 0 :(得分:2)
我忘记了这个问题。
对于未来的参考,这是我使用的解决方案......
而不是尝试将EventToCommand绑定到TreeView的Selected事件, 我将它绑定到TreeViewItems的HierarchicalDataTemplate中声明的TextBlock的MouseLeftButtonUpEvent。
<HierarchicalDataTemplate
x:Key="TreeViewItemTemplate"
ItemsSource="{Binding ChildReportViewModels}"
ItemContainerStyle="{StaticResource TreeViewItemContainerStyle}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp">
<gs_cmd:EventToCommand Command="{Binding LoadPublicationCommand, Mode=OneWay}" CommandParameter="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
答案 1 :(得分:0)
我对MVVMLight知之甚少,特别是关于EventTrigger。
但由于您的问题没有答案,但codeplex文章TreeViewWithViewModel可能有所帮助。它显示了如何在wpf-treeview中绑定到SelectedItem和IsExpanded属性,以及如何使用这些属性在树视图中实现按需加载。