絞り込み検索機能(C# WPF)

C#

日付絞り込み

検索開始日と検索終了日

public ReactiveProperty<DateTime> SearchStartDate;
public ReactiveProperty<DateTime> SearchEndDate;

public SearchClass(){
    this.SearchStartDate = new ReactiveProperty<DateTime>();
    this.SearchEndDate= new ReactiveProperty<DateTime>();
    this.SearchStartDate.Subscribe(ConfirmSearchDate)
    this.SearchEndDate.Subscribe(ConfirmSearchDate)
}

private void ConfirmSearchDate(DateTime date)
{
    if (SearchStartDate.Value > SearchEndDate.Value)
    {
        SearchStartDate.Value = date;
        SearchEndDate.Value = date;
    }
}

常に開始日<終了日となるように設定する。
ReactivePropertyっぽく書くなら、

this.SearchStartDate.Where(x => x > this.SearchEndDate.Value).Subscribe(x => this.SearchEndDate.Value = x);

という書き方もできる。
が、日付に関して言えば処理が共通なのでメソッドでいい気がする。

C#
スポンサーリンク
Once and Only

コメント