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