Exemple #1
0
        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;
        }
Exemple #2
0
 public static NavigationParameters GetNavigationParameters(MetaItemGroup group) =>
 new NavigationParameters
 {
     { MetaItemGroupKey, group },
 };