Frage

Ich habe eine Datenvorlage, die ich in vielen Seiten verwenden, die Datenvorlage ein paar Tasten enthält, möchte ich durch Trigger einige dieser Tasten verstecken (ich die IsEnabled Eigentum dieser Tasten auf der Seite meine Einstellung, wo ich diese verwenden Datatemplate).

Mit anderen Worten, ich würde sogar gerne in der Art Trigger setzen / Setter eine Eigenschaft ‚ButtonXIsEnabled‘, ‚ButtonYIsEnabled‘ als Teil des Datatemplate einstellbar von der List-Box, wo ich dieses Datatemplate verwendet werden.

Ich hoffe wirklich, bin ich klar genug, bitte Kommentare für weitere Details verlassen.

Jede mögliche Diskussion wirklich geschätzt! Vielen Dank im Voraus.

War es hilfreich?

Lösung

Im Grunde ist dies hängt davon ab, was das Objekt Ihrer für Ihre Datatemplate verwendet. Statt einige ButtonYIsEnabled, etcs verwenden. Versuchen Sie, einige Worte zu verwenden, die besser passen in Ihrem Domänenmodell.

Zum Beispiel sagen, Sie haben eine Liste von Kunden, und einige dieser Kunden haben die Möglichkeit, Discount-Produkte zu kaufen. Dann fügen Sie eine Eigenschaft zu Ihrem Kunden CanPurchaseDiscountedProducts genannt, und verwenden Sie diese Eigenschaft in Ihrem 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>

Andere Tipps

Eine WPF Datenvorlage ist eine Ansicht eines bestimmten Objekttypen ... wie Sie eine Instanz von ObjectTypeX zu suchen. Die Datenvorlage Eigenschaften der zugrunde liegenden Instanz binden kann.

Wenn Sie also eine ButtonXIsEnabled Eigenschaft auf Ihrem Beispiel können Sie auf den entsprechenden Button des Visibility-Eigenschaft auf die Instanz Eigenschaft binden. Die Schaltfläche würde in dem zugrunde liegenden Objekt basierend auf dem Wert angezeigt oder ausgeblendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top