2011-07-08 7 views
1

こんにちは、私は "Order"と呼ばれるユーザーコントロールを持っていて、 "Order"コントロールでは、別のユーザーコントロール "Status"があります。次に、Order ControlをMainwindowに入れました。ユーザーが言語を変更すると、次のように書きます。UserControl textblockをMainWindowから変更する

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

「ステータス」UserControlにも1つのテキストブロックがあります。 OrderControl lableを変更したように、このテキストブロックテキストをMainWindowからどのように変更できますか?

+0

あなたはMVVMを使用する必要があります。 Order.LabelのテキストをOrder View Modelのプロパティにバインドします。 OrderViewModelのプロパティをWindowから設定することができます。その後、プロパティでOnPropertyChangedを呼び出します。テキストは自動的に更新されます。 – seekle

答えて

2

Status UserControlのTextBlockにx:Name(例: "StatusText")を割り当てます。その後STATUSTEXTと呼ばれるあなたの順序制御にプロパティを追加します。

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

あなたは今言うことができる:

this.Order.StatusText = resBundle.GetString("Resources", "SomeLabel"); 
関連する問題