本文整理汇总了C#中ReactiveCommand.DistinctUntilChanged方法的典型用法代码示例。如果您正苦于以下问题:C# ReactiveCommand.DistinctUntilChanged方法的具体用法?C# ReactiveCommand.DistinctUntilChanged怎么用?C# ReactiveCommand.DistinctUntilChanged使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ReactiveCommand
的用法示例。
在下文中一共展示了ReactiveCommand.DistinctUntilChanged方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WebImageViewModel
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="source">関連付けるWebImageオブジェクト</param>
/// <param name="visionApiSubscriptionKey">Microsoft Vision API のSubscription Key</param>
/// <param name="logger">ログメッセージ通知オブジェクト</param>
public WebImageViewModel(WebImage source, string visionApiSubscriptionKey, ILogger logger)
{
this.source = source;
this.logger = logger;
this.visionApiSubscriptionKey = visionApiSubscriptionKey;
//Model(WebImage)のプロパティをReactivePropertyに変換
Thumbnail = source.ObserveProperty(x => x.Thumbnail).ToReadOnlyReactiveProperty();
DisplayImage = source.ObserveProperty(x => x.DisplayImage).ToReadOnlyReactiveProperty();
Overlay = source.ObserveProperty(x => x.Overlay).ToReadOnlyReactiveProperty();
SourceUrl = source.ObserveProperty(x => x.SourceUrl).ToReadOnlyReactiveProperty();
SourceTitle = source.ObserveProperty(x => x.SourceTitle).ToReadOnlyReactiveProperty();
ImageProperty = source.ObserveProperty(x => x.ImageProperty).ToReadOnlyReactiveProperty();
//実行中フラグ
IsProcessing = progress.IsProcessingObservable.StartWith(false)
.ToReadOnlyReactiveProperty();
//プログレスバーの表示切替 - 実行中のみ表示する
ProgressVisibility = IsProcessing
.Select(x => x ? Visibility.Visible : Visibility.Collapsed)
.ToReadOnlyReactiveProperty();
//画像のサイズ変更時に実行するコマンド
SizeChangedCommand = new ReactiveCommand<Size>();
SizeChangedCommand
.DistinctUntilChanged()
.Throttle(TimeSpan.FromMilliseconds(200))
.Subscribe(size =>
{
//現在のサイズで 顔領域の矩形を再描画
source.DrawFaceRect(size);
//最新のサイズを保存しておく ⇒画像再選択時に使う
imageSize = size;
})
.AddTo(disposables);
//リンク元ページURLのハイパーリンククリック時
NavigateCommand = new ReactiveCommand();
NavigateCommand.Subscribe(_ =>
{
Process.Start(source.SourceUrl);
}).AddTo(disposables);
}