0

我有一个绑定到数据网格的 observablecollection。该集合是从搜索结果中填充的。我还可以将项目添加到数据网格。我想禁用原始集合中的行。我添加的新行应该是可编辑的。我的限制是,我不能在集合中使用布尔属性来在数据触发器中使用。有没有办法做到这一点?

编辑:忘了提到我正在使用 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 回答