がメインウィンドウにアクセスするには:
Dim Main = TryCast(Application.Current.MainWindow, MainWindow);
ユーザーコントロールは次のように静的に定義されている場合:
<local:UserControl1 x:Name="uc" />
あなたはちょうどそれがのような名前だ使用することができます:あなたのユーザーコントロールを動的にコンテナに追加されている場合は、以下試してくださいMain.uc.label1.Text = "Hello World"
:
UserControlが国境にある場合:
Dim control = Main.MyBorder.Child as MyUserControl
control.label1.Text = "Hello World"
など(のStackPanel /グリッド/ Wrappanelなど)として、あなたのコンテナ内の複数のユーザーコントロールがある場合:あなたはそれを持っている変数をチェックして、必要な正確なユーザーコントロールを得ることができたとしても
Dim controls = Main.MyStackPanel.Childern.OfType(Of MyUserControl)()
For Each control In controls
control.label1.Text = "Hello World"
Next
が!
Dim control = Main.MyStackPanel.Childern.OfType(Of MyUserControl)().Where(Function(x) x.label1.Text = "myLabel").FirstOrDefault()
//You can access any variable that exists in your UserControl by 'x'
control.label1.Text = "Hello World"
どこのラベルにもアクセスする必要はありません。ビューモデルを使用し、そのプロパティをXAMLで適切にバインドします。 –