Проверка уровня объекта Silverlight с помощью MVVM - PullRequest
0 голосов
/ 28 февраля 2011

Я пытаюсь принять проверку на уровне объекта (проверка атрибутов на свойствах объектов) путем создания ViewModel, которая предоставляет эту сущность.

public class MyViewModel
{
    public MyEntity MyEntity { get; set; }
}

Я устанавливаю привязку в xaml, эта страница xaml устанавливает свой DataContext равнымэкземпляр MyViewModel

TextBlock Text="{Binding MyEntity.MyProperty}"

Когда я загружаю MyEntity из базы данных и устанавливаю его в MyViewModel, ничего не происходит.Я также называю NotifyPropertyChanged("MyEntity");, и все равно ничего не происходит.

Я пытаюсь снова создать MyProperty в MyViewModel

public class MyViewModel
{
    private MyEntity MyEntity { get; set; }

    public string MyProperty 
    {
        get { return this.MyEntity.MyProperty; }
        set { this.MyEntity.MyProperty = value; }
    }
}

И изменил xaml для привязки к MyProperty.На этот раз, когда я вызываю NotifyPropertyChanged ("MyProperty");Просмотр получить обновление правильно, когда я ввожу неверные данные, он имеет ValidationErrors в MyEntity, но View не вызывает эту ошибку (не отображать красную рамку)

Я хочу знать, как я могу получить проверку на уровне объекта, работая сMVVM.

1 Ответ

2 голосов
/ 22 мая 2011

Привет
Вы должны изменить определение ViewModel, например

public class MyViewModel:IDataErrorInfo
{
}

и реализовать интерфейс. это заставляет View отображать красную рамку при ошибке.
хочу помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...