私はWPFが新しく、複数のユーザーコントロールを持つウィンドウを表示したかったのです。WPF:ユーザーコントロールをプログラム的に変更する
example.xaml
<DockPanel>
<Border x:Name ="TopRegion" DockPanel.Dock = "top">
<local:userControl1/>
</Border>
<Border x:Name ="leftRegion" DockPanel.Dock = "left">
<local:userControl2/>
</Border>
</DockPanel>
のUserControl1とUserControl2を同じプロジェクト内の他の図です。私はusercontrol1.xamlとusercontrol2.xamlです。
のusercontrol
をusercontrol2
からusercontrol3
にプログラムで実行する必要があるという問題があります。
これを実現する方法は、example.xaml.csプログラムで行います。
WPFと言うときは、MVVMも言う必要があります。 WPFには、MVVMで最もよく使用されるデータテンプレートとテンプレートセレクタのような非常に強力な機能があります。 –
WPFなどのXAMLベースのAPIでは、プログラマティック手段を介してUIオブジェクトを直接変更したいという瞬間、あなたは十分な文脈を提供していません(つまり、良い詳細[mcve]、サポートの詳細とともに)... –
...あなたが対処しようとしているように見えるシナリオは、それぞれの 'それらのビューモデルクラスに関連付けられたい 'UserControl'をテンプレートに含み、' ViewControl'を使用してビューモデルを提示することで、これらのビューモデルクラスのそれぞれに対して 'DataTemplate'リソースを宣言し、 WPFがビューモデルを右の 'UserControl'に一致させる作業をさせるようにします。次に、表示された 'UserControl'を変更することは、その場所で使用しているビューモデルクラスを変更することです。 –