Свойство TextBox CaretIndex в ViewModel

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

Спасибо


person TheITGuy    schedule 14.02.2011    source источник


Ответы (2)


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

person Ashraf Sayied-Ahmad    schedule 16.09.2011

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

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

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

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

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

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

person Ashraf Sayied-Ahmad    schedule 27.09.2011