0

Silverlightアプリケーションにメソッドがあります。イベントが発生したとき(マウスの移動)にこのメソッドの呼び出しを開始し、単純なブール条件が変更されるまで1秒ごとにこのメソッドを呼び出し続けたいと思います。これは可能ですか?単一のイベントから複数の「イベント」を生成するようにrxを取得する方法を理解できません

4

1 に答える 1

2

これを行うために使用した方法は次のとおりです。

var isChecked = from f in Observable.FromEvent<RoutedEventHandler, RoutedEventArgs>(
                    h => new RoutedEventHandler(h),
                    h => checkBox1.Checked += h,
                    h => checkBox1.Checked -= h)
                where checkBox1.IsChecked == true
                select new Unit();

var xs = from click in Observable.FromEvent<RoutedEventHandler, RoutedEventArgs>(
             h => new RoutedEventHandler(h),
             h => button1.Click += h,
             h => button1.Click -= h)
         from ping in Observable.Interval(TimeSpan.FromSeconds(1.0)).TakeUntil(isChecked)
         select ping;

_subscription = xs.ObserveOnDispatcher().Subscribe(v => label1.Content = v.ToString());

クリックでイベントを開始するボタンを作成しました。チェックするとイベントが停止するチェックボックスを作成しました。これはまさにあなたが望むものではないかもしれませんが、あなたが求めたようにイベントが発生し、ここからスーツに合わせて変更できるはずです.

于 2010-03-29T11:35:49.983 に答える