WPFのDataTemplateのプロパティを公開するには?
-
22-08-2019 - |
質問
私は多くのページで使用するデータテンプレートを持つ、データテンプレートは、いくつかのボタンが含まれている、私はこれを使用するページでは、これらのボタンのでIsEnabledプロパティを設定する私が意味する(トリガーによってこれらのボタンの一部を非表示にしたいですDataTemplate)。
言い換えれば、私も、私はこのDataTemplateを使用し、リストボックスから設定可能なのDataTemplateの一環として、「ButtonYIsEnabled」「ButtonXIsEnabled」プロパティをセッター/スタイルのトリガに設定したいと思います。
私は本当に、私は十分に明確だ願って、それ以上の詳細についてはコメントを残してくださいます。
任意の議論は本当に理解されるであろう! 事前に感謝します。
解決
基本的に、これはあなたがあなたのDataTemplateのために使用してオブジェクトによって異なります。代わりに、いくつかのButtonYIsEnabled、ETCSを使用します。あなたのドメインモデルにして、より良いフィットいくつかの単語を使用してみてください。
たとえば、あなたが顧客のリストを持っており、それらの顧客の一部は、割引製品を購入する能力を持っていると言います。次に、あなたの顧客と呼ばれるCanPurchaseDiscountedProductsにプロパティを追加し、あなたのDataTemplateでそのプロパティを使用します。
<DataTemplate TargetType="{x:Type local:Customer}">
<!-- Other Items -->
<Button Content="Purchase Discounted Products" x:Name="discounts" Visibility="Hidden" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding CanPurchaseDiscountedProducts}" Value="True">
<Setter TargetName="discounts" Property="Visibility" Value="Visible"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
他のヒント
WPFデータテンプレートを使用すると、ObjectTypeXのインスタンスを見てみたいか...特定のオブジェクトタイプの図です。データテンプレートは、基礎となるインスタンスのプロパティにバインドすることができます。
あなたのインスタンスでButtonXIsEnabled性質を持っている場合は、だから、あなたは、インスタンスのプロパティに対応するボタンのVisibilityプロパティをバインドすることができます。ボタンは、基礎となるオブジェクトの値に基づいて表示または非表示にすることでしょう。