2

現在、この拡張機能を使用して、ViewModelのデータを処理する特定のイベントを設定しています...例:

<swi:Interaction.Triggers>
    <swi:EventTrigger EventName="Click">
        <esi:CallDataMethod Method="SaveRevision_Clicked"/>
    </swi:EventTrigger>
</swi:Interaction.Triggers>

esiとswiは次のとおりです。

xmlns:esi="clr-namespace:Expression.Samples.Interactivity;assembly=Expression.Samples.Interactivity"
xmlns:swi="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

しかし、TreeViewItemのイベントを設定したいのは何ですか?私はそれらに直接アクセスできませんよね?

編集:私は実際にItemContainerStyleを使用しています、

<Style x:Key="FolderView" TargetType="{x:Type TreeViewItem}">
    <Setter Property="HeaderTemplate">
        <Setter.Value>
            <HierarchicalDataTemplate ItemsSource="{Binding Children}"  >
                <StackPanel Orientation="Horizontal">
                    <Image Name="img"
                               Width="20"
                               Height="20"
                               Stretch="UniformToFill"
                               Source="Images/hdicon.png"/>
                    <TextBlock Text="{Binding FolderName}" Margin="5,0" />
                </StackPanel>
            </HierarchicalDataTemplate>
        </Setter.Value>
    </Setter>
</Style>

しかし、私はそこに私のイベントを置くことができません。これらの行はどこに置くべきですか?

<swi:Interaction.Triggers>
    <swi:EventTrigger EventName="Expanded">
        <esi:CallDataMethod Method="Expand"/>
    </swi:EventTrigger>
</swi:Interaction.Triggers>

前もって感謝します!

4

1 に答える 1

1

これを実現するには TreeView.ItemContainerStyle を使用する必要があります。役立つ実装をいくつか示します。

奇妙な動作 WPF TreeView ItemContainerStyle と ItemTemplate

WPF ダブルクリック TreeviewItem 子ノード

于 2011-02-24T17:45:15.543 に答える