2

MVVMLightを使用して、TreeViewItemSelectedイベントをコマンドにバインドしようとしています。

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 イベントにバインドする代わりに、TreeViewItem の 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 についてはあまり知識がありません。

しかし、あなたの質問に対する答えはまだないので、コードプレックスの記事TreeViewWithViewModelが役立つかもしれません。wpf-treeview で SelectedItem プロパティと IsExpanded プロパティにバインドする方法と、これらを使用してツリービューでロード オン デマンドを実装する方法を示します。

于 2011-03-09T15:19:26.693 に答える