1


0

WPF:DataTemplateからControlTemplateプロパティを変更しますか?

WPFへのMVVMアプローチを使用して、 `SubButton`と呼ばれるビューモデルクラスがあります。 スタイルは次のとおりです。


「DataTrigger」は機能しません。 Selected`は SubButton`クラスの通常の.Netプロパティです。 コンパイラが「rectBackground」ターゲットがどこから来たのかわからないため、コンパイルエラーが発生します。 それは `ControlTemplate`の一部ですが、それをどのように伝えるのか分かりませんか? 「DataContext」についての何か?

1 Answer


1


あなたが望むものは不可能です。 WPFはNameScopesで動作し、rectBackgroundという名前はDataTemplateの範囲外です。 元の名前rectBackgroundは、元のControlTemplate内のスコープにのみ含まれます。 そうしないと、アプリケーション全体で重複した名前を使用できないため、これは幸運です。 できることは、TemplateBackingを介してrectBackgroundのFillプロパティをRadioButtonのBackgroundプロパティにバインドすることです。 RadioButtonの背景をコードの他の場所に変更すると、rectBackgroundはこのブラシを塗りとして取得します。 ポイントを説明するために、コードを多少変更しました。 これをDataTemplateを使用してモデルに簡単に変更できます。

       one
       two