如何实现Multi-DataTriggerBehavior

时间:2014-08-17 00:44:36

标签: winrt-xaml windows-8.1 windows-phone-8.1 expression-blend

如何实现Multi-DataTriggerBehavior?

我已经有一个DataTriggerBehavior了。但我需要一个基于事件和多个条件的触发器。

1 个答案:

答案 0 :(得分:0)

我建议您创建自己的Behavior来处理此问题。

这些是可能解决方案的步骤。

  1. 因为您需要以某种方式调用VisualState代码中的Behavior,您必须将xaml中定义的VisualStateManager更改为{ {1}}(请参阅此post中的实施内容),因为内置的ExtendedVisualStateManager VisualStateManager方法不接受GoToState作为其参数。

  2. 创建Grid并将其附加到正确的Behavior。我假设您想要在Control事件被引发时执行某些操作。因此,您需要在Control代码隐藏中为此创建处理程序。

  3. 创建依赖项属性,映射视图模型中定义的属性,并订阅其所有属性已更改Behavior。您可能需要本地标志来判断是否所有这些都已更新。如果是,请在事件处理程序中调用callbacks。请注意,您可能还需要创建一个依赖项属性来引用您的ExtendedVisualStateManager.GoToElementState和其他一些人来映射您的Grid名称。

  4. VisualState附加到xaml中的Behavior并对其所有依赖项属性进行数据绑定。

  5. 希望这是有道理的。