2016-10-13 4 views
0

私はDataTemplateでRoutedEventを処理しようとすると問題に直面しました。私のコードは以下の通りです。このような方法の後ろにコードで設定DataTemplateでRoutedEventを処理する方法は?

<DataTemplate x:Key="AdditionalTemplate"> 
      <Grid> 
       ... 
      </Grid> 

      <DataTemplate.Triggers> 
       <EventTrigger RoutedEvent="local:EditorView.HideView"> 
        <BeginStoryboard> 
         <Storyboard> 
          ...        
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
      </DataTemplate.Triggers> 

     </DataTemplate> "HideView" event set in code behind 

"HideView" イベント:

public static readonly RoutedEvent HideViewEvent = EventManager.RegisterRoutedEvent("HideView", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(EditorView)); 

結果として何もイベントが呼び出した後に起こりません。

ご意見はありますか?あなたのビューモデルにプロパティを作成し、DataTriggerしてイベントトリガーを交換する必要が

+0

ビューモデルでプロパティを使用しないのはなぜですか? この目的のためにDatatriggerは正確にディリグされています。 イベントがこのプロパティ "MyProperty"を変更し、EventTriggerがDataTriggerに変更されたときのコード変更:

+0

ニースのヒント!私はそれを試してみます! –

+0

私は解決策としてマークするためのコメントではなく、回答としてヘルプを書いてください。 –

答えて

0

:あなたのイベントは、変更を上げたときに

<DataTrigger Binding="{Binding MyProperty}"> 
<BeginStoryboard> 
         <Storyboard> 
          ...        
         </Storyboard> 
        </BeginStoryboard> 
</DataTrigger> 

は、このプロパティの道で「MYPROPERTYを」あなたのコードを変更しました。これによりデータトリガーが有効になり、ストーリーボードが実行されます。

+0

ありがとう!しかし、Storyboardの前にを追加するのは正しいと思われます。 –

関連する問題