TextBox CaretIndex property in ViewModel

2019-04-12 23:12发布

问题:

Is it possible to get/set the value of CaretIndex property of a TextBox control in viewmodel in wpf via Binding defined in view?

Thanks

回答1:

You can not bind the property CaretIndex since it is not a DependencyProperty. It is a CLR property that does not accept binding.



回答2:

The issue here is how to get the CaretIndex of the TextBox control via the view model. If you intent to get it directly by binding to the view model its impossible. As I posted in the previous answer its a CLR property and not a dependency property.

What can we do?

The best solution for that is to follow the steps:

  1. Define attached property on the control via separate class.
  2. Define a property in the view model and bind the attached property to the one in the view-model
  3. Update the control property in the callback of the attached property changed event according to the new value received.

In this case, we still separate the view from the model.

I hope my answer helps you!