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

发布于 2024-11-19 15:24:07 字数 121 浏览 3 评论 0原文

我正在开发一个触摸屏应用程序。我有一个带有内容为“新玩家”的按钮的表单,然后显示带有文本框的键盘,供用户输入他的名字。现在我需要当我关闭(或输入名称时)父窗口中的按钮将内容更改为用户输入的名称。但我无法绑定到父级..我该怎么做?

I'm developing a touchscreen app. I have a form with buttons with the content "new player" and then a keyboard with a textbox is shown for the user to enter his name. Now I need that when I close (or while inputting the name) the button from the parent window change the content to the name that the user typed. But I cant make a binding to the parent.. how can I do it??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

后知后觉 2024-11-26 15:24:07

您是否在 WPF 应用程序中实现模型-视图-视图模型模式,或者根本使用数据绑定?

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

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

完成此操作后,当用户输入新的玩家名称时,该按钮将自动更新。

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

Are you implementing the Model-View-ViewModel pattern in your WPF application, or using databinding at all?

You don't have to use MVVM, but you should really be using databinding in some fashion.

With databinding, you'd bind the button content to a string property of some object (a view-model in MVVM). That object needs to implement the INotifyPropertyChanged interface. You can bind the textbox on the child window to the same property of the same object.

With that in place, the button will be updated automatically when the user types in a new player name.

If you need more details, please comment and I'll be glad to elaborate.

鸠书 2024-11-26 15:24:07

您可以尝试类似的操作:

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

编辑:Jay 的想法是解决此问题的正确方法,我只是提供一种使用 LINQ 从其父级访问控件的替代方法。

You can try something like:

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

Edit: And Jay's idea is the right way at going at this, i was just offering an alternative way of accessing the controls from their parent using LINQ.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文