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