ViewModel中的TextBox CaretIndex属性

The*_*Guy 2 wpf binding caret mvvm

是否可以通过视图中定义的绑定在wpf中的viewmodel中获取/设置TextBox控件的CaretIndex属性值?

谢谢

Ash*_*mad 5

您不能绑定该属性,CaretIndex因为它不是DependencyProperty.它是一个不接受绑定的CLR属性.


Ash*_*mad 5

这里的问题是如何通过视图模型获取控件CaretIndex的。TextBox如果您打算通过绑定到视图模型来直接获取它,这是不可能的。正如我在之前的回答中发布的那样,它是 CLR 属性,而不是依赖属性。

我们可以做什么?

最好的解决方案是按照以下步骤操作:

  1. 通过单独的类在控件上定义附加属性。
  2. 在视图模型中定义一个属性并将附加属性绑定到视图模型中的属性
  3. 根据收到的新值,在附加属性更改事件的回调中更新控件属性。

在这种情况下,我们仍然将视图与模型分开。

希望我的回答对您有帮助!