Domanda

Ho un modello di dati che uso in molte pagine, il modello di dati contiene alcuni pulsanti, voglio nascondere alcuni di questi pulsanti da trigger (intendo impostare l'IsEnabled proprietà di questi pulsanti nella pagina in cui io uso questo DataTemplate).

In altre parole, mi piace nemmeno a mettere in trigger stile / setter una proprietà 'ButtonXIsEnabled', 'ButtonYIsEnabled' come parte del DataTemplate impostabile dal ListBox in cui io uso questo DataTemplate.

Spero davvero che io sono abbastanza chiari, si prega di lasciare commenti per ulteriori dettagli.

Qualsiasi discussione sarà molto apprezzato! Grazie in anticipo.

È stato utile?

Soluzione

In pratica questo dipende da ciò che oggetto vostro usando per il vostro DataTemplate. Invece di usare alcuni ButtonYIsEnabled, etcs. Prova ad usare alcune parole che si adattano meglio al tuo modello di dominio.

Per esempio dire che hai un elenco di clienti, e alcuni di questi clienti hanno la possibilità di acquistare prodotti scontati. Quindi aggiungere una proprietà al cliente chiamato CanPurchaseDiscountedProducts, e l'uso che di proprietà nella vostra 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>

Altri suggerimenti

Un modello di dati di WPF è una vista di un certo tipo di oggetto ... come si desidera che un'istanza di ObjectTypeX a guardare. Il modello di dati può legarsi alle proprietà per l'istanza sottostante.

Quindi, se si dispone di una proprietà ButtonXIsEnabled sul tuo esempio, è possibile associare proprietà di visibilità del pulsante corrispondente alla proprietà di istanza. Il pulsante potrebbe essere mostrata o nascosta in base al valore nell'oggetto sottostante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top