public MetaTabDetailViewModel() { // タブ名 TabName = MetaItemGroup .Select(x => x.Name) .ToReadOnlyReactiveProperty(); // MetaItemの文字列フィルタリング MetaItemGroup .CombineLatest(FilterPattern, IsFilterFavorite, (MetaGroup, Pattern, IsFav) => (MetaGroup, Pattern, IsFav)) .Subscribe(x => UpdateFilterMetaItems(x.MetaGroup.Items, GetFilterPredicate(x.Pattern, x.IsFav))); // MetaItemのフィルタ文字列の削除 ClearFilterPatternCommand = FilterPattern .Select(x => !string.IsNullOrEmpty(x)) .ToReactiveCommand(); ClearFilterPatternCommand.Subscribe(x_ => FilterPattern.Value = ""); // お気に入りのみ表示 SwitchFavoriteFilterCommand = new DelegateCommand(() => IsFilterFavorite.Value = !IsFilterFavorite.Value); // カラム選択で色付け SelectedItem.Subscribe(x => x?.SwitchMark()); IsActiveChanged += ViewIsActiveChanged; }
public static NavigationParameters GetNavigationParameters(MetaItemGroup group) => new NavigationParameters { { MetaItemGroupKey, group }, };