0

我有一个在许多页面中使用的数据模板,数据模板包含几个按钮,我想通过触发器隐藏其中一些按钮(我的意思是在我使用此 DataTemplate 的页面中设置这些按钮的 IsEnabled 属性)。

换句话说,我什至想在样式触发器/设置器中设置一个属性“ButtonXIsEnabled”、“ButtonYIsEnabled”作为我使用此 DataTemplate 的 ListBox 中可设置的 DataTemplate 的一部分。

我真的希望我足够清楚,请留下评论以获取更多详细信息。

任何讨论将不胜感激!提前致谢。

4

2 回答 2

1

基本上这取决于您用于数据模板的对象。而不是使用一些 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>
于 2009-03-30T18:08:34.427 回答
0

WPF 数据模板是某种对象类型的视图……您希望 ObjectTypeX 的实例看起来如何。数据模板可以绑定到底层实例的属性。

因此,如果您的实例上有 ButtonXIsEnabled 属性,则可以将相应的 Button 的 Visibility 属性绑定到实例属性。该按钮将根据基础对象中的值显示或隐藏。

于 2009-03-30T18:02:29.700 回答