Променете текстовия блок на Usercontrol от MainWindow

Здравейте, получих потребителска контрола, наречена „Поръчка“, а в контролата „Поръчка“ получих друга потребителска контрола „Състояние“. След това поставих Order Control в главния прозорец. Когато потребителите сменят езика, аз пиша по следния начин.

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

Имам и един текстов блок в UserControl "Status". Как мога да променя текста на този текстов блок от MainWindow, както промених контролния етикет на поръчката?


person TNA    schedule 08.07.2011    source източник
comment
Трябва да използвате MVVM. свържете текста на Order.Label към свойство на Order View Model. тогава можете да зададете свойството на OrderViewModel от прозореца. След това извикайте OnPropertyChanged на свойството. Текстът ще се актуализира автоматично.   -  person seekle    schedule 08.07.2011


Отговори (1)


Присвоете x:Name (напр. „StatusText“) към TextBlock във вашия Status UserControl. След това добавете свойство към вашата контрола за поръчка, наречено StatusText:

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

Вече можете да кажете:

this.Order.StatusText = resBundle.GetString("Resources", "SomeLabel");
person Ed Bayiates    schedule 08.07.2011