将事件控制为命令和RX

时间:2010-10-02 09:12:55

标签: wpf events mvvm system.reactive

我们使用传统的事件架构(没有命令等)编写了一些WPF / Silverlight控件,并希望将其转换为符合MVVM的控件。我研究了这个主题,我认为我必须编写命令来包装我当前在控件中的事件。我想现在正确地设计它,所以我想让它成为RX投诉,而不仅仅是命令。

有人可以向我解释如何将我目前设计的事件设计成命令和RX请求。

如果我们采取类似控件的Click事件和设计命令,以及RX兼容(可观察等),这将是有用的,所以我可以理解所涉及的内容。

目前它是简单的事件,使用起来非常简单:)...所以可以订阅它并执行自定义处理程序。 我的雇主要我制作这个命令,也要RX-ify。

我读了一些关于这些的文章,但发现它需要一些博士学位才​​能理解(数学双,主题< T>等):)我无法理解它。 我正在努力把它变成命令并进入RX。请帮忙。我想要正确地学习这个,所以我不必再次重新设计它。

提前致谢。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我不知道ReactiveXaml但是如果你想将事件绑定到命令,我可以建议你MVVM光。你可以尝试类似下面的代码,而且MVVM light提供了一个EventToCommand Sample:

<Window 
   ... 
  xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
  xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras" 
  />
 <ComboBox ItemSource="{Binding MyCollection}">
    <Interactivity:Interaction.Triggers>
      <Interactivity:EventTrigger EventName="SelectionChanged">
         <cmd:EventToCommand Command="{Binding Path=LoadCommand}" />
      </Interactivity:EventTrigger>
    </Interactivity:Interaction.Triggers>
  </ComboBox>