我有一个图表设计器程序,当用户右键单击一个形状并在属性窗口中写入形状名称时,我想将文本添加到形状(这些是路径对象)。我向形状添加了一个上下文菜单属性,当用户在上下文菜单中单击“属性”时,会打开一个新窗口,其中包含一个文本框和一个按钮。我可以在形状中添加一个文本块,但我不能将属性窗口中的文本框绑定到形状中的文本块。我想要的是当用户在属性窗口中的文本框中输入文本并单击“确定”按钮时,形状上的文本块将更改为用户输入的文本。
感谢。
答案 0 :(得分:1)
您可以使用ElementName绑定将一个控件绑定到另一个控件:
<TextBlock Text="{Binding Text, ElementName=TextBoxInPropertiesWindow}" />
但这可能不是你想要的,因为它听起来像属性窗口,文本框很快就会消失和/或被重用来编辑其他图元素。
因此,您需要考虑将文本框和文本块绑定到基础数据模型/ viewmodel。通过这种方式,文本框可以更新模型(在文本框被销毁后仍然保留),然后文本块将更新以响应模型中的更改。
答案 1 :(得分:0)
将所选形状的datacontext绑定到名为SelectedItem的窗口或控制器上的属性,然后将属性窗口的datacontext绑定到SelectedItem。