【发布时间】:2011-04-25 19:05:31
【问题描述】:
我已经构建了一个表单来显示包含在可观察集合中的项目的属性。这个可观察的集合位于 View 的数据上下文绑定到的 ViewModel 中。
当点击表单上的 New 按钮时,一个新的 Item 被添加到 observable 集合中,并且在 collectionview 的帮助下被设置为当前项目。使用相同的表格。这一次,因为是新项目,所以字段是空的。
现在,我希望 observable 集合中只有一个新项目。因此,我需要以某种方式区分项目和新项目。
因此,在新要求之前,我的 ViewModel 中有以下可观察集合:
public ObservableCollection<ItemViewModel> ItemTypes { get; private set; }
但现在我需要能够区分新项目和旧项目。我一直在尝试做一些事情,比如构建一个基类,我从中派生 Item 和 New Item,但这似乎真的很浪费,因为我想不出任何东西可以放入派生类中,它们真的只是那里可以帮助查看 observable 中是否有一个 Empty Item。
我能做什么?
编辑
private void CreateNewItemType()
{
if (DoesNewItemTypeAlreadyExist())
{
return;
}
Model.ItemType itemType = new Model.ItemType();
ItemTypeViewModel itemTypeViewModel = new ItemTypeViewModel(itemType)
{
IsNew = true
};
ItemTypes.Add(itemTypeViewModel);
itemTypesCollectionView.MoveCurrentTo(itemTypeViewModel);
}
private bool DoesNewItemTypeAlreadyExist()
{
return ItemTypes.Any(a => a.IsNew == true);
}
【问题讨论】:
-
bool IsNew 在模型上然后以不同方式绑定?
-
是的,我也想到了这个想法。 - 但是你对 bind 不同是什么意思?基本上,我的代码只是通过 observable 集合来查看是否有空类型。根据您的建议,我已经放弃了所有内容以获得 IsNew 变量,但仍计划通过可观察集合进行搜索以找到真正的...