我有一个绑定到数据网格的 observablecollection。该集合是从搜索结果中填充的。我还可以将项目添加到数据网格。我想禁用原始集合中的行。我添加的新行应该是可编辑的。我的限制是,我不能在集合中使用布尔属性来在数据触发器中使用。有没有办法做到这一点?
编辑:忘了提到我正在使用 MVVM 框架。
我有一个绑定到数据网格的 observablecollection。该集合是从搜索结果中填充的。我还可以将项目添加到数据网格。我想禁用原始集合中的行。我添加的新行应该是可编辑的。我的限制是,我不能在集合中使用布尔属性来在数据触发器中使用。有没有办法做到这一点?
编辑:忘了提到我正在使用 MVVM 框架。
如果您无法将“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 是设计模式。我希望这会有所帮助 :) 最好的问候和好运 :)