Question

J'ai un modèle de données que j'utilise dans de nombreuses pages, le modèle de données contient quelques boutons, je veux cacher certains de ces boutons par des déclencheurs (je veux dire en définissant la propriété IsEnabled de ces boutons dans la page où j'utilise cette DataTemplate).

En d'autres termes, je voudrais même définir dans les déclencheurs de style / setters une propriété « ButtonXIsEnabled », « ButtonYIsEnabled » dans le cadre du DataTemplate du ListBox réglable où j'utilise cette DataTemplate.

Je l'espère vraiment que je suis assez clair, s'il vous plaît laisser des commentaires pour tous les détails.

Toute discussion sera vraiment apprécié! Merci à l'avance.

Était-ce utile?

La solution

En gros, cela dépend de l'objet de votre utilisation de votre DataTemplate. Au lieu d'utiliser des ButtonYIsEnabled, ETCS. Essayez d'utiliser des mots qui correspondent mieux à votre modèle de domaine.

Par exemple que vous avez une liste de clients, et certains de ces clients ont la possibilité d'acheter des produits à prix réduits. Ensuite, ajoutez une propriété à votre CanPurchaseDiscountedProducts appelé client, et utiliser cette propriété dans votre 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>

Autres conseils

Un modèle de données WPF est une vue d'un certain type d'objet ... comment vous voulez une instance de ObjectTypeX à regarder. Le modèle de données peut se lier à des propriétés de l'instance sous-jacente.

Donc, si vous avez une propriété ButtonXIsEnabled sur votre exemple, vous pouvez lier la propriété de visibilité du bouton correspondant à la propriété d'instance. Le bouton sera affiché ou masqué en fonction de la valeur de l'objet sous-jacent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top