如何在DataTemplate中处理RoutedEvent?

时间:2016-10-13 09:37:24

标签: wpf xaml

我遇到了尝试在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));

结果在事件调用后没有任何反应。

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要在视图模型中创建一个属性,并用DataTrigger替换事件触发器:

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

当您的活动提升更改此属性时,更改了您的代码&#34; MyProperty&#34;。这将激活您的数据触发器,故事板将运行。