Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
10.12.2012, 14:34
|
|||
---|---|---|---|
|
|||
проверка полей в MVVM |
|||
#18+
Вот такой вопрос новичка. Сделано по шаблону MVVM, есть вью и для нее вью модель. TextBoх на вью связан со свойством Height обьекта Map вью модели: Код: xml 1.
Пусть свойство Height имеет тип double. Когда я на форме в это поле ввожу неправильного формата значение, скажем строку "23/34", и перехожу на другой элемент, то граница текстового поля становится красной и при этом я могу редактировать другие элементы и в конце концов сохранить данные (при этом сохраняется предыдущее "правильное" число). Вопрос - как лучше сделать так, чтобы при неправильном формате введенного значения и дальнейшей смене фокуса программа выводила сообщение и не давала редактировать другие элементы? Первое, что приходит в голову это в каждом элементе обработать событие потери фокуса и сделать проверку, но это уж очень криво, по-моему. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 20:13
|
|||
---|---|---|---|
проверка полей в MVVM |
|||
#18+
Гуглите: IDataErrorInfo ValidationRule ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.12.2012, 13:32
|
|||
---|---|---|---|
|
|||
проверка полей в MVVM |
|||
#18+
Nicky_N, ок, спасибо, сделал через ValidationRule с выводом сообщения об ошибке: Код: xml 1. 2. 3. 4. 5. 6. 7.
Осталась пара вопросов. Первый - у меня поле Map.Height имеет тип double? и я хочу, чтобы пустое значение в текстовом поле не считалось за ошибку и приводило к null в самом свойстве. Как этого добиться? Сейчас считает за ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.12.2012, 16:14
|
|||
---|---|---|---|
проверка полей в MVVM |
|||
#18+
проверка полей в MVVM, как именно вы проверяете в ValidationRule? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.12.2012, 16:29
|
|||
---|---|---|---|
|
|||
проверка полей в MVVM |
|||
#18+
Nicky_N, ну вот, например, делаю класс: Код: c# 1. 2. 3. 4. 5. 6. 7.
и для поля на форме: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9.
для пустого поля, к которому прибинедно свойство типа double? у меня все равно получается ошибка. в этом случае мне хочется, чтобы свойиство становилось null. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.12.2012, 17:32
|
|||
---|---|---|---|
проверка полей в MVVM |
|||
#18+
проверка полей в MVVM, Не понятно, в чем смысл вашего правила проверки: всегда возвращать положительный результат проверки? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.12.2012, 17:42
|
|||
---|---|---|---|
|
|||
проверка полей в MVVM |
|||
#18+
Nicky_ ну это просто пример, я убрал все лишнее. но даже с этим - проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.12.2012, 18:08
|
|||
---|---|---|---|
проверка полей в MVVM |
|||
#18+
проверка полей в MVVM, когда я задавал вопрос о том, как именно вы проверяете, я имел в виду код вашего класса "со всем лишним". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.12.2012, 09:53
|
|||
---|---|---|---|
|
|||
проверка полей в MVVM |
|||
#18+
Nicky_N, я может не очень корректно задал последний вопрос, переформулировал его в соседнем топике. там проблема возникает даже если ничего специально не проверять. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.12.2012, 11:21
|
|||
---|---|---|---|
проверка полей в MVVM |
|||
#18+
проверка полей в MVVM, У меня получилось сделать это, но дополнительно пришлось использовать конвертер. Тут еще есть нюанс: валидация срабатывает до вызова конвертера и это неудобно, но как сделать по-другому мне неизвестно (было бы удобнее, если бы конвертер в данном случае вызывался до валидатора). См. код. Валидатор Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Конвертер Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
XAML Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=21&mobile=1&tid=1441562]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 153ms |
0 / 0 |