2011-02-24 118 views
2

觸發事件的最正確的方法我目前使用這個擴展設置這在視圖模型...例處理數據的特定事件:WPF MVVM - 什麼是內樹型視圖

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

凡ESI及開關是:

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> 

在此先感謝!

回答

1

您需要使用TreeView.ItemContainerStyle來實現這一目標,這裏有幾個實現的可能幫助:

Strange Behaviour WPF TreeView ItemContainerStyle and ItemTemplate

WPF Double Click TreeviewItem Child Node

+0

但是如何設置使用行爲與交互lib中的觸發器? – 2011-02-24 18:09:40

+0

您可以嘗試以下位置: ShahidAzim 2011-02-25 11:46:41