C# WPF在项目上添加textblock并将其绑定到textbox

C# WPF在项目上添加textblock并将其绑定到textbox,c#,wpf,diagram,C#,Wpf,Diagram,我有一个图表设计器程序,当用户右键单击形状并在属性窗口中写入形状名称时,我想向形状(这些是路径对象)添加文本。我将上下文菜单属性添加到形状中,当用户单击上下文菜单中的“属性”时,将打开一个新窗口,其中包含一个文本框和一个按钮。我可以向形状添加textblock,但无法将属性窗口中的textbox绑定到形状中的textblock。我想要的是,当用户在属性窗口的textbox中输入文本并单击OK按钮时,形状上的textblock将更改为用户输入的文本 谢谢。您可以使用ElementName绑定将一个

我有一个图表设计器程序,当用户右键单击形状并在属性窗口中写入形状名称时,我想向形状(这些是路径对象)添加文本。我将上下文菜单属性添加到形状中,当用户单击上下文菜单中的“属性”时,将打开一个新窗口,其中包含一个文本框和一个按钮。我可以向形状添加textblock,但无法将属性窗口中的textbox绑定到形状中的textblock。我想要的是,当用户在属性窗口的textbox中输入文本并单击OK按钮时,形状上的textblock将更改为用户输入的文本


谢谢。

您可以使用ElementName绑定将一个控件绑定到另一个控件:

<TextBlock Text="{Binding Text, ElementName=TextBoxInPropertiesWindow}" />

但在本例中,这可能不是您想要的,因为听起来属性窗口和文本框很快就会消失,并且/或者被重用以编辑其他图表元素


因此,您确实需要考虑将文本框和文本块绑定到基础数据模型/视图模型。通过这种方式,文本框可以更新模型(在文本框被销毁后仍然保留),然后文本块将根据模型中的更改进行更新。

您可以使用ElementName绑定将一个控件绑定到另一个控件:

<TextBlock Text="{Binding Text, ElementName=TextBoxInPropertiesWindow}" />

但在本例中,这可能不是您想要的,因为听起来属性窗口和文本框很快就会消失,并且/或者被重用以编辑其他图表元素


因此,您确实需要考虑将文本框和文本块绑定到基础数据模型/视图模型。通过这种方式,文本框可以更新模型(在文本框被销毁后仍然保留),然后文本块将根据模型中的更改进行更新。

将选定形状的datacontext绑定到窗口或控制器上名为SelectedItem的属性,然后将属性窗口的datacontext绑定到SelectedItem。

将选定形状的datacontext绑定到窗口或控制器上名为SelectedItem的属性,然后将属性窗口的datacontext绑定到SelectedItem。

首先,感谢您的关注。但我不知道如何“将文本框和文本块绑定到底层数据模型/视图模型”。你能解释一下吗?你有一些图表的底层数据模型,比如一个图表对象和一组形状对象。UI上的每个文本块都绑定到一个Shape.Text。现在,在关系图上(或者在视图模型中,如果不合适的话)提供SelectedShape属性,在选择更改时更新该属性,并将文本框绑定到SelectedShape.Text。希望这现在更有意义!我做到了。这需要一点时间,但最终还是成功了。再次感谢您的帮助。首先,感谢您的关心。但我不知道如何“将文本框和文本块绑定到底层数据模型/视图模型”。你能解释一下吗?你有一些图表的底层数据模型,比如一个图表对象和一组形状对象。UI上的每个文本块都绑定到一个Shape.Text。现在,在关系图上(或者在视图模型中,如果不合适的话)提供SelectedShape属性,在选择更改时更新该属性,并将文本框绑定到SelectedShape.Text。希望这现在更有意义!我做到了。这需要一点时间,但最终还是成功了。再次感谢你的帮助。