希望来自新手的一个简单的启动问题......
我有一个TextBox,其Text属性绑定到ViewModel和DependencyProperty。
当我点击TextBox时,我希望第二个TextBox(一个'Editor'TextBox)被赋予与第一个相同的绑定。结果是编辑第二个'Editor'TextBox会更新第一个。
最终我希望能够点击任何TextBox并在同一个'Editor'TextBox中编辑它。
我的解决方案使用选项2 ...谢谢!!:
private void m_sourceTextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
TextBox sourceTextBox = sender as TextBox;
if (null != sourceTextBox)
{
BindingExpression sourceBindExpression = sourceTextBox.GetBindingExpression(TextBox.TextProperty);
if (sourceBindExpression != null && sourceBindExpression.ParentBinding != null && sourceBindExpression.ParentBinding.Path != null)
m_editorTextBox.SetBinding(TextBox.TextProperty, sourceBindExpression.ParentBinding);
}
}
答案 0 :(得分:2)
我可以想到两种方法
首先,您的SelectedText
绑定了ViewModel中的EditorTextBox
属性,并在点击任何其他TextBoxes
时设置此值。为此,您可能需要类似AttachedCommandBehavior的内容,以便将ViewModel中的命令附加到TextBox的Click
或Focus
事件。
我能想到的另一种方法就是在代码隐藏中完成它。在每个TextBox的Click
或Focus
事件中,获取所选TextBox的BindingExpression
的{{1}},并将绑定复制到TextProperty
。