我遇到了尝试在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));
结果在事件调用后没有任何反应。
你有什么想法吗?
答案 0 :(得分:0)
您需要在视图模型中创建一个属性,并用DataTrigger替换事件触发器:
<DataTrigger Binding="{Binding MyProperty}">
<BeginStoryboard>
<Storyboard>
...
</Storyboard>
</BeginStoryboard>
</DataTrigger>
当您的活动提升更改此属性时,更改了您的代码&#34; MyProperty&#34;。这将激活您的数据触发器,故事板将运行。