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

Възможно ли е да се получи/зададе стойността на свойството CaretIndex на контрола TextBox в viewmodel в wpf чрез Binding, дефинирано в изглед?

Благодаря


person TheITGuy    schedule 14.02.2011    source източник
comment
stackoverflow.com/questions/2245928/   -  person Daniel Hilgarth    schedule 12.10.2012


Отговори (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