Zu Hauptinhalt springen

 none
C#/Xaml: Style ListviewItem für bestimme Werte ändern RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    ich schlage mich jetzt schon seit Tagen mit einem Problem herum, zu dem ich keine richtige Lösung finde. 

    Ich habe eine Listview, mit Telefonnummern. So weit so gut. Jetzt möchte ich aber erreichen, dass bei einer bestimmten Tel.Nr. der Hintergrund gelb angezeigt wird. Hat jemand eine Ahnung wie man das gut umsetzt?

    Meine Idee, war jetzt für dieses ListViewItem einfach den Style zu ändern?

    Aber wie stelle ich das an?

    <Style x:Key="data2" TargetType="ListViewItem">
                <Setter Property="Background" Value="#FFFAD211"/>
            </Style>

    Dazu habe ich den folgenden Style definiert, der angewendet werden soll, sobald die Bedingung erfüllt ist:

    if (entry.Profile.EntryNumber == "952458")
                        {
                            ListwithNumbers.ItemTemplate = (DataTemplate)Resources["data2"];
                                                }

    Aber es klappt nicht.

    Hoffentlich kennt jemand von Euch eine Lösung.

    Vielen Dank vorab,

    LG Michael


    Montag, 20. Mai 2019 21:26

Alle Antworten

  • Hallo Michael,

    Jetzt möchte ich aber erreichen, dass bei einer bestimmten Tel.Nr. der Hintergrund gelb angezeigt wird.

    Um den Hintergrund des ausgewählten Elementes zu ändern, kannst Du die SelectedBackground-Eigenschaft der ListViewItemPresenter-Klasse festlegen. Schau Dir die Beispiele in folgenden Links an:
    [UWP] Styling a ListviewItem without creating a copy of the ItemContainer style
    Style all ListViewItem in UWP app (Code im Eingangsposting)

    Ich füge mal der Übersichtlichkeit halber einen aufs Wesentliche verkürzten Ausschnitt an:

            <ResourceDictionary>
                <SolidColorBrush x:Key="YellowBrush" Color="Yellow" />
                <Style TargetType="ListViewItem">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ListViewItem">
                              <ListViewItemPresenter
                               <!-- ... -->
                               SelectedBackground="{StaticResource YellowBrush}" <!--oder: SelectedBackground="Red" -->
                               />
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ResourceDictionary>

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 21. Mai 2019 19:59
    Moderator
  • Hallo Michael,

    Bist Du weitergekommen? Ist der Thread noch aktuell?

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Mittwoch, 29. Mai 2019 06:13
    Moderator