我有一个observablecollection绑定到datagrid。此集合是从搜索结果中填充的。我还可以向datagrid添加项目。我想禁用行,这是原始集合的一部分。我添加的新行应该是可编辑的。我的限制是,我不能在集合中使用布尔属性来在数据触发器中使用。有办法吗?
编辑:忘了提到我正在使用MVVM框架。
答案 0 :(得分: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是设计模式。我希望这有帮助:)祝你好运,祝你好运:)