|
MVVM - Как показать ошибки валидации для нескольких свойств привязанного объекта?
|
|||
---|---|---|---|
#18+
Реализовал MVVM как тут http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages/ Ошибки валидации показываю как тут http://msdn.microsoft.com/en-us/library/ms752347.aspx#invalidation_feedback Проблема в коде отображения ошибки: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9.
Конкретно, в части Код: xml 1.
Там в примере привязывается один элемент управления и, соответственно, к одному свойству одного объекта. А если у меня много таких свойств? У меня код выглядит так - привязка к свойствам ширины и высоты: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Текстбоксы для ввода значений, а текстблоки - для отображения ошибок. Если ошибки сразу у обоих свойств объекта, то в обоих текстовых блоках показывается ошибка только первого свойства, если у какого-то одного, то показывает ошибку именно этого свойства. Причём, если заменить путь привязки на (Validation.Errors).CurrentItem, то ничего не изменится. Как сделать так, чтобы при любой конфигурации ошибок элемент отображения текста ошибки всегда показывал только свою ошибку? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 08:21 |
|
MVVM - Как показать ошибки валидации для нескольких свойств привязанного объекта?
|
|||
---|---|---|---|
#18+
Уточняю. Не "показывается ошибка только первого свойства", а на самом деле сценарий такой. Я запускаю приложение и по нажатию кнопки создаётся объект со свойствами, которые проходят валидацию модели представления и не проходят валидацию модели. На этом этапе ошибки отображаются для каждого свойства свои. Потом я исправляю второе свойство, чтобы оно проходило валидацию и модели, но отображение ошибки валидации модели не исчезает. Лишь когда я исправляю и первое свойство (для него отображение ошибки исчезает сразу), а затем ещё изменяю второе (чтобы возникло событие PropertyChanged), то тогда уже для второго исчезает отображение ошибки. Т. е. какая-то зависимость между первым и вторым свойством есть, причём первое почему-то влияет на второе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 08:29 |
|
MVVM - Как показать ошибки валидации для нескольких свойств привязанного объекта?
|
|||
---|---|---|---|
#18+
Вот ещё более обще заметил. Отображение ошибки валидации МОДЕЛИ (но не модели представления) для второго свойства появляется всегда, когда есть отображение ошибки валидации МОДЕЛИ для первого. Но при текст ошибки для каждого свойства свой - т. е. для свойства ширины пишет, что неправильная ширина, когда она на самом деле неправильная, но для высоты пишет, что неправильно ВЫСОТА, даже когда она правильна. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 08:33 |
|
MVVM - Как показать ошибки валидации для нескольких свойств привязанного объекта?
|
|||
---|---|---|---|
#18+
Так, разобрался! Это в модели опечатку сделал при проверке свойств и в результате в коде проверки высоты проверял всё равно ширину. )) Это из-за того, что код переносил методом copy-paste и забыл все имена поправить. )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 08:41 |
|
|
start [/forum/topic.php?desktop=1&fid=21&tid=1441919]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 143ms |
0 / 0 |