我可以在按钮中使用TextBox的CaretIndex作为CommandParameter吗?

时间:2012-10-10 11:47:02

标签: wpf mvvm textbox

我想要一个按钮,将列表框中选中的文本插入文本框。我正在尝试使用命令,我将当前的插入符号索引作为命令参数传递,然后命令处理程序将在此索引处插入所选的文本。可能吗?我不知道如何在xaml中引用aTextBox.CaretIndex

2 个答案:

答案 0 :(得分:2)

此问题与this question类似。

关键是绑定属性CaretIndex是没有用的,因为它不是DependencyProperty,因为你没有得到值更改的通知。具体来说,如果直接绑定到CaretIndex,程序将编译,但是数据绑定中CaretIndex的值将始终为0,即使您在文本框中移动光标也是如此。

您可以改为创建一个可以绑定而不是CaretIndex的附加属性。 提出了一个解决方案here,其中添加了附加属性以绑定SelectedText属性,该属性也不是依赖属性。这个想法是一样的。

答案 1 :(得分:0)

您可以按名称绑定到TextBox并将CaretIndex提供给Path道具

<TextBox Name="MyTextBox" Text="My Text" />
<Button Command="{Binding MyCommand}" CommandParameter="{Binding ElementName=MyTextBox Path=CaretIndex}"/>