Domanda

Ho una casella di riepilogo associata a una raccolta osservabile del modello di visualizzazione:

Funziona bene, meno un piccolo intoppo ... supponendo che la raccolta osservabile contenga stringhe, il tutto si rompe quando voci con valori identici vengono aggiunte alla raccolta, qual è il modo migliore per gestirlo? Strutt personalizzata anziché stringhe e quindi una piastra dati?

modifica: completamente dimenticato di spiegare il comportamento ... seleziona più valori quando faccio clic su una singola voce, vengono selezionati tutti gli altri valori con lo stesso testo.

È stato utile?

Soluzione

Questo problema esiste perché è la natura del controllo derivato dal Selettore. Quando inizi a selezionare un elemento dal tipo ObservableCollection e la tua raccolta contiene stringhe duplicate, il selettore è confuso su quale elemento ha selezionato. Devi creare una nuova classe / struttura semplice e inserire la stringa.

public class Info
{
    public string Name { get; set; }
}

// ..

MyList = new ObservableCollection<Info>(new List<Info> { new Info { Name = "Hello World" }, new Info { Name = "Hello World" }, new Info { Name = "Hello World" } });

e così.

<ListBox ItemsSource="{Binding MyList}" DisplayMemberPath="Name" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top