TextBox CaretIndex свойство в ViewModel - PullRequest
2 голосов
/ 14 февраля 2011

Можно ли получить / установить значение свойства CaretIndex элемента управления TextBox в viewmodel в wpf через Binding, определенный в представлении?

Спасибо

Ответы [ 2 ]

5 голосов
/ 17 сентября 2011

Вы не можете связать свойство CaretIndex, поскольку оно не является DependencyProperty Это CLR свойство, которое не принимает привязку.

4 голосов
/ 28 сентября 2011

Проблема здесь в том, как получить CaretIndex элемента управления TextBox через модель представления. Если вы намерены получить его напрямую, связавшись с моделью представления, это невозможно. Как я уже писал в предыдущем ответе, это свойство CLR, а не свойство зависимости.

Что мы можем сделать?

Лучшее решение для этого - выполнить следующие шаги:

  1. Определение вложенного свойства элемента управления через отдельный класс.
  2. Определение свойства в модели представления и привязка присоединенного свойства к свойству в модели представления
  3. Обновление свойства элемента управления в обратном вызове события изменения присоединенного свойства в соответствии с полученным новым значением.

В этом случае мы по-прежнему отделяем представление от модели.

Надеюсь, мой ответ вам поможет!

...