繁体   English   中英

如何公开WPF DataTemplate的属性?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM