C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■92071 / 親階層)  【WPF】DataTemplatedeのViewModel
□投稿者/ tro (12回)-(2019/08/23(Fri) 09:13:29)

分類:[.NET 全般] 

DataTemplateを使用してContentControlの部分の画面遷移を実現しようと考えていますが、
表示するViewのViewModelが上手くデータバインディングできずに困っています。
DataTemplateを使用しない場合は問題ないのですが。

■サンプルコード
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Test"
xmlns:view="clr-namespace:Test.View"
xmlns:vm="clr-namespace:Test.ViewModel"
mc:Ignorable="d"
Title="Test" Height="768" Width="1024">

<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>

<Window.Resources>
<DataTemplate DataType="{x:Type vm:APageViewModel}">
<view:APageView DataContext="{Binding APageViewModel}"/> ←データバインディングしたViewModelが使用されない
</DataTemplate>
<DataTemplate DataType="{x:Type vm:BPageViewModel}">
<view:BPageView DataContext="{Binding BPageViewModel}"/>
</DataTemplate>
</Window.Resources>

<Grid>
<ContentControl Content="{Binding CurrentPage, Mode=TwoWay}"/>
<!--<view:APageView DataContext="{Binding APageViewModel}"/>--> ←直接表示する場合はデータバインディングしたViewModelが使用される
</Grid>
</Window>


■APageViewのxaml
<UserControl x:Class="Test.View.APageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Test.View"
xmlns:vm="clr-namespace:Test.ViewModel"
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1024">

<UserControl.DataContext>
<vm:APageViewModel/>
</UserControl.DataContext>

</Grid>
</Grid>
</UserControl>

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: 【WPF】DataTemplatedeのViewModel /Hongliang
 
上記関連ツリー

【WPF】DataTemplatedeのViewModel / tro (19/08/23(Fri) 09:13) #92071 ←Now
Re[1]: 【WPF】DataTemplatedeのViewModel / Hongliang (19/08/23(Fri) 10:03) #92073
  └ Re[2]: 【WPF】DataTemplatedeのViewModel / tro (19/08/23(Fri) 10:25) #92075
    └ Re[3]: 【WPF】DataTemplatedeのViewModel / Hongliang (19/08/23(Fri) 10:46) #92076
      └ Re[4]: 【WPF】DataTemplatedeのViewModel / tro (19/08/23(Fri) 10:53) #92077
        └ Re[5]: 【WPF】DataTemplatedeのViewModel / Hongliang (19/08/23(Fri) 13:59) #92084
          └ Re[6]: 【WPF】DataTemplatedeのViewModel / Hongliang (19/08/23(Fri) 14:26) #92085
            └ Re[7]: 【WPF】DataTemplatedeのViewModel / tro (19/08/23(Fri) 18:46) #92086
              └ Re[8]: 【WPF】DataTemplatedeのViewModel / Hongliang (19/08/23(Fri) 19:02) #92087
                └ Re[9]: 【WPF】DataTemplatedeのViewModel / tro (19/08/23(Fri) 21:31) #92088

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信