Как выставить свойства WPF DataTemplate? - PullRequest
0 голосов
/ 30 марта 2009

У меня есть шаблон данных, который я использую на многих страницах, шаблон данных содержит несколько кнопок, я хочу скрыть некоторые из этих кнопок с помощью триггеров (я имею в виду настройку свойства IsEnabled этих кнопок на странице, где я использую это DataTemplate).

Другими словами, я бы даже хотел установить в стиле триггеров / сеттеров свойство 'ButtonXIsEnabled', 'ButtonYIsEnabled' как часть объекта DataTemplate, устанавливаемого из ListBox, где я использую этот DataTemplate.

Я действительно надеюсь, что я достаточно ясен, пожалуйста, оставляйте комментарии для дальнейших подробностей.

Любая дискуссия будет по достоинству оценена! Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 марта 2009

В основном это зависит от того, какой объект вы используете для вашей таблицы данных. Вместо использования некоторых ButtonYIsEnabled и т. Д. Попробуйте использовать некоторые слова, которые лучше соответствуют вашей модели предметной области.

Например, скажем, у вас есть список клиентов, и некоторые из этих клиентов имеют возможность покупать товары со скидкой. Затем добавьте свойство к вашему клиенту под названием CanPurchaseDiscountingProducts и используйте это свойство в шаблоне данных

<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>
0 голосов
/ 30 марта 2009

Шаблон данных WPF - это представление определенного типа объекта ... как вы хотите, чтобы экземпляр ObjectTypeX выглядел. Шаблон данных может быть привязан к свойствам базового экземпляра.

Поэтому, если у вас есть свойство ButtonXIsEnabled в вашем экземпляре, вы можете связать соответствующее свойство Visibility Button со свойством экземпляра. Кнопка будет отображаться или скрываться в зависимости от значения в базовом объекте.

...