メモ書きブログ

日々の覚書

WPFで同一WindowでUserControlを可変に表示する

WPF で動的にビューを切り替える - graphics.hatenablog.com

画面遷移っぽいということは、 NavigationServiceだと 次に開いた場合に設定なんかが戻っちゃうのかな? あと、データの受け渡しが面倒くさいのかもしれない。

DataTemplateで行う場合は、適当に名前つけておくのが簡単そうだった。 リソースに追加

<DataTemplate x:Key="User1">
    <local:UserControl1 x:Name="user" />
</DataTemplate>

<DataTemplate x:Key="User2">
    <local:UserControl2 x:Name="user2" />
</DataTemplate>

でも結局ふつうにContentControlに実体を設定するのではだめなのかな。

<XAML>
    <ContentControl x:Name="ToolArea" Grid.Column="2" />

<C#>
    UserControl1 user1 = new UserControl1();
    this.ToolArea.Content = user1;

のような。