Frage

In meiner XAML-Datei, ich habe eine List-Box wie folgt erklärt:

           <ListBox x:Name="lstDeck" Height="280" ItemsSource="{Binding Path=Deck}"  >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <ListBoxItem  Content="{Binding}" />
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

Meiner Ansicht nach Modell, Deck ist ein ObservableCollection, so dass die Bindung direkt den Inhalt meiner Sammlung zeigt.

Aber wenn ich mehrere Wert haben, der den gleichen Wert (zB „10“ sechsmal) halten, die Auswahl in der List-Box hat eine seltsame Verhalten. 2-3 Elemente statt dem nur diejenige auswählen, auf das ich angeklickt

Außerdem, wenn ich zu einem anderen ListBoxItem klicken, wird es nicht die vorherigen ausgewählte unfocus.

Dann ist es unmöglich, zu sehen, welche Artikel tatsächlich gewählt wird, und unmöglich, den SelectedIndex Wert zu erhalten.

Hat jemand eine Idee?

War es hilfreich?

Lösung

Das Problem ist, dass das Listenfeld zwischen den verschiedenen Werten unterscheidet cannout. Daher wird, sobald Sie eine der „10“ s klicken, wird es SelectedItem Eigenschaft legt und aktualisiert seine Präsentation. Weil es nicht zwischen den Werttypen unterscheiden kann es jeden „10“ markiert als ausgewählt.

Aber warum Sie „10“ mehrmals in Ihrer listbox haben? Wenn es nur der numerische Wert 10 oder die Zeichenfolge „10“ ist es keinen Sinn für mich macht.

Wenn Sie ein komplexeres Modell dahinter und Sie nur eine Eigenschaft anzuzeigen, als Sie das komplexe Modell binden soll und stellen Sie die DisplayMemberPath statt.

C #

public class Model
{
    public Guid Id { get; set; }
    public string Value { get; set; }
}

XAML

<ListBox ItemsSource="{Binding Path=Models}" DisplayMemberPath="Value" />

<ListBox ItemsSource="{Binding Path=Models}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=Value}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Mit freundlichen Grüßen
Oliver Hanappi

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