проверка не проходит wpf mvvm - PullRequest
2 голосов
/ 17 марта 2011

обучение wpf с mvvm (используя EF в качестве ORM).

На мой взгляд, у меня есть свойство:

//---------------ClientNew
        public const string ClientNewConst = "ClientNew";
        private TBL_CLIENT _clientNew = new TBL_CLIENT();
        public TBL_CLIENT ClientNew
        {
            get
            {
                return _clientNew;
            }

            set
            {
                if (_clientNew == value)
                {
                    return;
                }

                var oldValue = _clientNew;
                _clientNew = value;

                // Update bindings, no broadcast
                RaisePropertyChanged(ClientNewConst);
            }
        }

где TBL_CLIENT - это объект права, который отражает таблицу TBL_CLIENT в БД

Теперь, в моем ПРОСМОТРЕ я связываю несколько таких текстовых полей (пример только для имени клиента):

<TextBox  Style="{StaticResource ResourceKey=entryFormTextBox}"
                                      Text="{Binding ClientNew.CLIENT_FIRST_NAME, 
                                ValidatesOnDataErrors=True,
                                NotifyOnValidationError=true,
                                ValidatesOnExceptions=True, 
                                UpdateSourceTrigger=LostFocus}"
                                      Grid.Column="1"
                                      Grid.Row="1" />

Я пытался использовать разные триггеры для источника обновлений ... проверка не работает.

о, я реализовал интерфейс idataerrorinfo в моей модели представления (но он никогда не попадет в нее ..)

#region IDataErrorInfo Members

        string IDataErrorInfo.Error
        {
            get { throw new NotImplementedException(); }
        }

        string IDataErrorInfo.this[string columnName]
        {
            get 
            {
                if (string.IsNullOrEmpty("ClientNew.CLIENT_FIRST_NAME"))
                {
                   return "Client Name is required";                    
                }
                return null;
            }
        }

        #endregion

итак, вопрос .. как я могу реализовать простую, насколько это возможно, проверку с использованием idataerrorinfo для моего случая, где у меня нет отдельного свойства, определенного в ModelView для каждого объекта сущности, но свойство принимает весь объект сущности

спасибо заранее, Alex

1 Ответ

0 голосов
/ 24 марта 2011

Вы можете посмотреть пример приложения BookLibrary WPF Application Framework (WAF) . Он определяет правила валидации непосредственно на объекте. Пожалуйста, посмотрите на "BookLibrary.Domain / Book.cs".

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