没有Interactivity.dll:MVVMLight的EventToCommand的替代品

时间:2014-11-04 08:21:51

标签: c# mvvm-light

在我们当前的C#项目中,我们使用MVVM light框架及其EventToCommand功能将事件绑定到命令(也在this SO thread中提到)。 我们使用它,例如:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="GotFocus">
        <cmd:EventToCommand CommandParameter="{Binding SelectedItem, ElementName=SelectTree}"
                            Command="{Binding Path=SelectTreeGotFocusCommand, Mode=OneWay}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

我的问题是:在不使用EventToCommand的情况下,实现相同行为(即GotFocus,不限于System.Windows.Interactivity)的最简单方法是什么?

为了避免XY problem,这里有一些背景知识:

  • 我们正在为已经存在的主要应用程序开发一个插件,我们对此没有任何影响。我们的插件用作此主应用程序使用的dll。
  • 到目前为止,我们使用了上面给出的XAML代码(即使用System.Windows.InteractivityEventToCommand)。但是,主应用程序的最后一个版本包含旧版本的System.Windows.Interactivity(到目前为止,它根本没有包含在内),它不支持此功能。
  • 这意味着使用旧的Interactivity.dll会导致我们的插件无法正常使用。但是,使用我们需要的新版本覆盖dll会导致部分主应用程序出现问题。
  • 我读到了在项目中使用相同dll的两个不同版本(例如here),但这似乎非常复杂。由于我们只使用这种结构的地方很少,我认为用不使用Interactivity.dll的代码替换它可能会更容易。

0 个答案:

没有答案