0

我正在开发一个 WPF 应用程序(MVVM)。我有一个来自单独程序集的类(Odata V4 Generated Proxy Class)。

public partial class Book : BaseEntityType, INotifyPropertyChanged
{
   public string Title{get;set;}
   ...
}

现在我需要使用数据注释来装饰该类的属性,以便使用IDataErrorInfoINotifyDataErrorInfo接口验证属性。前任:

[Required]
public string Title{get;set;}

问题:

由于此类在单独的程序集中,我无法创建部分类。此类的属性绑定到应用程序的 UI 元素。现在我需要在用户输入数据时验证属性。

我正在努力设计解决方案。任何人都可以帮助我实现这一目标吗?

4

1 回答 1

0

包装器可能如下所示:

public class BookWrapper : INotifyPropertyChanged, IDataErrorInfo
{
   private Book _book;
     public Book Book 
   {
      get
       {
         return _book;
       }
      set
       {
         _book-value;
         NotifyPropertyChanged("Book");
       }
   }  
    public string Error
    {
        get { return String.Empty; }
    }
    public string this[string columnName]
    {
        get
        {
            String errorMessage = String.Empty;
            switch (columnName)
            {
                case "Book":
                    if (Book.IsValid==false)
                    {
                        errorMessage = "Book not valid";
                    }
                    break;
            }
            return errorMessage;
        }
    }
  INotifyPropertyChanged Implementation...
}

这样你就不会弄乱你的数据对象(书),也不会用不必要的接口乱扔它。

于 2017-05-15T13:48:53.913 回答