[英]How to expose properties of a WPF DataTemplate?
我有一个在许多页面中使用的数据模板,该数据模板包含一些按钮,我想通过触发器隐藏其中一些按钮(我的意思是在使用此DataTemplate的页面中设置这些按钮的IsEnabled属性)。
换句话说,我什至想在样式触发器中设置属性“ ButtonXIsEnabled”,“ ButtonYIsEnabled”,作为使用此DataTemplate的ListBox中可设置的DataTemplate的一部分。
我真的希望我足够清楚,请留下评论以获取更多详细信息。
任何讨论将不胜感激! 提前致谢。
基本上,这取决于您用于数据模板的对象。 而不是使用某些ButtonYIsEnabled等。 尝试使用一些更适合您的域模型的词。
例如,假设您有一个客户列表,其中一些客户可以购买打折产品。 然后向您的客户添加一个名为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属性,则可以将相应的Button的Visibility属性绑定到实例属性。 该按钮将根据基础对象中的值显示或隐藏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.