【问题标题】:Change Usercontrol textblock from MainWindow从 MainWindow 更改用户控件文本块
【发布时间】:2011-09-30 22:59:53
【问题描述】:

您好,我得到了名为“Order”的用户控件,在“Order”控件中,我得到了另一个用户控件“Status”。然后,我将订单控制放入主窗口。当用户改变语言时,我写如下。

// change culture info.
this.Order.lbl_test.Content = resBundle.GetString("Resources", "Order.Label.Content.Test");

我在“状态”用户控件中也有一个文本块。如何从 MainWindow 更改此文本块文本,就像更改 Order 控件标签一样?

【问题讨论】:

  • 你应该使用 MVVM。将 Order.Label 的文本绑定到 Order View Model 的属性。然后你可以从窗口设置 OrderViewModel 的属性。然后在属性上调用 OnPropertyChanged。文本将自动更新。

标签: c# wpf wpf-controls binding


【解决方案1】:

在您的 Status UserControl 中为 TextBlock 分配一个 x:Name(例如,“StatusText”)。然后在 Order 控件中添加一个名为 StatusText 的属性:

public string StatusText
{
    get { return Status.StatusText.Text; }
    set { Status.StatusText.Text = value; }
}

你现在可以说:

this.Order.StatusText = resBundle.GetString("Resources", "SomeLabel");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多