0

データグリッドにバインドされた観察可能なコレクションがあります。このコレクションは、検索結果から入力されます。データグリッドにアイテムを追加することもできます。元のコレクションの一部だった行を無効にしたい。私が追加した新しい行は、編集可能である必要があります。私の制限は、データトリガーで使用するコレクションにブール値のプロパティを含めることができないことです。それを行う方法はありますか?

編集:MVVMフレームワークを使用していることを忘れていました。

4

1 に答える 1

2

コレクション内のアイテムに「IsEnabled」プロパティを追加できない場合は、それらのアイテムのクラス/タイプから継承する新しいクラスをいつでも作成できます。

    public class MyDataGridPresenterClass : OriginalItemClass
    {
        public bool IsEnabled { get; set; }
    }

そして、これを新しいものとして使用しtypeてください。これを行うのをObservableCollection妨げるものは何もありません...そしてもちろん、それはそれを継承しているので、すべてMyDataGridPresenterClassもそうです。OriginalItemClass

だからあなたは持つことができます

    ObservableCollection<MyDataGridPresenterClass> DataGridItems
    {
        get { return this.dataGridItems; }
        set
        {
            this.dataGridItems = value;
            RaisePropertyChanged("DataGridItems");
        }
    }

これでIsEnabledプロパティができたので、言及したDataTriggerで使用できます。変更はしていませんOriginalItemClass。誰もが満足しています。:) 後もう一つ。明確にするために:)MVVMはフレームワークではありません...MVVMはデザインパターンです。これがお役に立てば幸いです:)よろしくお願いします:)

于 2013-01-22T20:42:00.790 に答える