如何公开一个WPF DataTemplate中的属性?
-
22-08-2019 - |
题
我有我的许多页面使用数据模板,数据模板包含几个按钮,我想通过触发隐藏的某些按键(我的意思是在我使用此页面设置这些按钮的IsEnabled属性DataTemplate中)。
在换句话说,我甚至会喜欢的风格触发器来设置/设定装置“ButtonXIsEnabled”,“ButtonYIsEnabled”一个属性作为DataTemplate中从哪里使用此DataTemplate中列表框可设置的一部分。
我真的希望我不够清晰,请发表评论任何进一步的细节。
任何讨论都会非常感激! 由于事先。
解决方案
基本上,这取决于你使用的是您的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属性绑定到实例属性。按钮将被示出或基于在底层对象的值隐藏。
不隶属于 StackOverflow