ViewModel 中的 TextBox CaretIndex 属性

发布于 2024-10-17 08:07:45 字数 83 浏览 2 评论 0原文

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

谢谢

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

翻了热茶 2024-10-24 08:07:45

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

我们能做什么?

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

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

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

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

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!

留一抹残留的笑 2024-10-24 08:07:45

您无法绑定属性 CaretIndex,因为它不是 DependencyProperty。它是一个CLR
不接受绑定的属性。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文