Как сделать акцент и выделить текст в TextBox из ViewModel - PullRequest
0 голосов
/ 31 мая 2009

Я экспериментирую с MVVM в контексте простого приложения WPF. У меня есть команда, прикрепленная к кнопке. Если текст в TextBox «неправильный», я хочу, чтобы TextBox получил фокус и выбрал все его содержимое. Похоже, что единственный способ сделать это - либо через какой-то прямой вызов Command из моей ViewModel в View, либо настроить какое-либо событие, которое запускается ViewModel и прослушивает View. Оттуда представление может делать прямые вызовы на рассматриваемый TextBox.

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

Что можно было бы считать «наилучшей практикой» здесь, и насколько развязаны представления, которые действительно должны быть от ViewModels в «настоящих» приложениях MVVM?

Ответы [ 2 ]

1 голос
/ 31 мая 2009

Это код, который напрямую связан с элементами управления вашего пользовательского интерфейса, поэтому я думаю, что в этом случае код View находится там, где он принадлежит. Возможно, вы захотите настроить событие или что-то подобное. Таким образом, он по-прежнему не связан, как и раньше - представление в любом случае знает о модели представления, у вас есть еще несколько строк кода в коде позади.

0 голосов
/ 02 июня 2009

Я столкнулся с той же проблемой, я сделал настраиваемое текстовое поле и выставил свойство зависимости из этого элемента управления.

Как и фокус, выберите весь текст и привяжите эти свойства для просмотра модели.

...