Вопрос

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

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

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

Любое обсуждение будет действительно оценено!Заранее благодарю.

Это было полезно?

Решение

В основном это зависит от того, какой объект вы используете для своей 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 в вашем экземпляре, вы можете привязать свойство видимости соответствующей кнопки к свойству instance.Кнопка будет отображаться или скрыта в зависимости от значения в базовом объекте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top