我在项目中有一个场景,我们需要从数据库中获取所有活动的书籍记录并保存在 observablecollection 中。此 observale Collection 绑定到 WPF 应用程序中的网格控件,用户可以在其中添加删除书籍。我们需要保留集合中所有添加、删除和修改的记录,直到用户点击保存到数据库。我们的约束是书名和书的IBN号必须是唯一的。如果用户添加了已经存在于集合中的具有重复书名的新书,那么我们需要使该对象无效,这样在所有集合对象都无效之前,它将不允许用户保存在数据库中。我知道它可以通过不同的方式实现,我想知道这样做的最佳实践。任何带有 IDataErrorInfo 或企业验证库的解决方案都值得赞赏。
问问题
70 次
1 回答
0
您可以像这样很好地使用 IDataErrorInfo
public class Book : IDataErrorInfo
{
public string BookName { get; set; }
public string IBN { get; set; }
public string Error
{
get { throw new NotImplementedException(); }
}
public string this[string columnName]
{
get
{
string result = null;
switch(columnName)
{
case "BookName":
result = IsDuplicate(BookName) ? "Already Present" : null;
break;
case "IBN":
result = IsDuplicate(IBN) ? "Already Present" : null;
break;
default:
break;
}
return result;
}
}
}
于 2010-05-13T10:14:37.847 回答