.NET Reactive Frameworkをちょっとかじってみた
参考にしたところ
.NETリアクティブフレームワーク(Rx)がLINQ to Eventsを可能にする
unfold: Introducing Rx (Linq to Events)
.NET Reactive Framework を Enjoy! してみた
コード
public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); // ucコントロールのMouseMoveイベントをキャッチするよう登録 // X座標が300以下の場合はi++ // ※observerのdisposeは省略。 Observable.FromEvent<MouseEventArgs>(uc, "MouseMove") .Where( e => e.EventArgs.GetPosition(uc).X <= 300) .Subscribe( () => i++ ); } private int i = 0; private void UserControl_MouseMove(object sender, MouseEventArgs e) { tc.Text = string.Format("x={0}, y={1}", e.GetPosition(uc).X, e.GetPosition(uc).Y); tb.Text = i.ToString(); } }
なるほど、まさしくLINQ to Eventsですね。
これは便利そうだ。