WPF C#从子窗口更改按钮内容

时间:2011-07-11 17:57:14

标签: c# wpf binding parent

我正在开发一款触摸屏应用。我有一个带有按钮的表单,内容为“new player”,然后显示带有文本框的键盘,供用户输入他的名字。现在我需要当我关闭(或在输入名称时)父窗口中的按钮时将内容更改为用户键入的名称。但我不能与父母绑定..我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您是在WPF应用程序中实现Model-View-ViewModel模式,还是使用数据绑定?

您不必使用MVVM,但您应该以某种方式使用数据绑定。

使用数据绑定,您可以将按钮内容绑定到某个对象的字符串属性(MVVM中的视图模型)。该对象需要实现INotifyPropertyChanged接口。您可以将子窗口上的文本框绑定到同一对象的同一属性。

有了这个,当用户键入新的玩家名称时,该按钮将自动更新。

如果您需要更多详情,请发表评论,我很乐意详细说明。

答案 1 :(得分:0)

您可以尝试以下内容:

var button = this.Parent.Controls.OfType<Button>().Select(b => b.Name == "NameOfControl").First();
button.Content = name;

编辑:Jay的想法是正确的方法,我只是提供了一种使用LINQ从父母访问控件的替代方法。