2

我正在尝试使用 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?

谢谢。

4

2 回答 2

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>
于 2011-03-22T15:04:51.527 回答
0

我对 MVVMLight 尤其是 EventTrigger 知之甚少。

但是由于您的问题没有答案,但 codeplex 文章TreeViewWithViewModel可能会有所帮助。它展示了如何绑定到 wpf-treeview 中的 SelectedItem 和 IsExpanded 属性,以及如何使用这些属性在树视图中实现按需加载。

于 2011-03-09T15:19:26.693 回答