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

わんくま同盟

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

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

■92085 / 6階層)  【WPF】DataTemplatedeのViewModel
□投稿者/ Hongliang (875回)-(2019/08/23(Fri) 14:26:51)
おっと、
DataContextの場合
> SetCurrentValue(DataContextProperty, new ...)
これは継承によって消えてしまって既定の値になりませんね。

以下の2通りの解決案を考えました。

A. 独自の依存関係プロパティを作る
こちらの方がおすすめです。
既定値はコンストラクタのSetCurrentValueで設定。
APageView.xaml内でのDataContextの継承は、以下のように記述できます。
// 依存関係プロパティの名前をValueとする。
<UserControl ...>
  <Grid DataContext="{Binding Path=Value,
     RelativeSource={RelativeSource AncesctorType={x:Type local:APageView}}">
    <!-- 以降、{Binding Path=Hoge} でValueのHogeプロパティを参照できる -->

B. DataContextにこだわるなら、既定のスタイルを使う
1) プロジェクトにThemesフォルダを作り、そこにGeneric.xamlという
  リソースディクショナリを追加して以下を記述します。
<Style TargetType="{x:Type local:APageView}"
       BasedOn="{StaticResource {x:Type UserControl}}">
  <Setter Property="DataContext">
    <Setter.Value>以下略

2) APageViewに静的コンストラクタを作成し、以下を記述します。
DefaultStyleKeyProperty.OverrideMetadata(typeof(APageView),
    new FrameworkPropertyMetadata(tyepof(APageView)));

編集キー/

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

【WPF】DataTemplatedeのViewModel / tro (19/08/23(Fri) 09:13) #92071
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
          └ 【WPF】DataTemplatedeのViewModel / Hongliang (19/08/23(Fri) 14:26) #92085 ←Now
            └ 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

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