2017-05-09 1 views
0

Je prévois d'obtenir les index spécifiés de plusieurs éléments dans la collection et de remplir une interface graphique. Cela peut-il être fait avec les méthodes ObservableCollection ou faudra-t-il explorer d'autres moyens? En utilisant également MVVM Light toolkit.Est-il possible de rechercher l'index de multi type ObservableCollection?

Je commence avec 6 propriétés:

ObservableCollection<Model> collection = new ObservableCollection(); 

Public Class Model : INotifyPropertyChanged { 

    private string _Item1; 
    public string Item1 
    { 
     get{ return _Item1;} 
     set{ Item1 = value; RaisedPropertyChange(nameof(Item1)); 
    } 

    private int _Item2; 
    public int Item2 
    { 
     get{ return _Item2;} 
     set{ Item1 = value; RaisedPropertyChange(nameof(Item2)); 
    } 
    . 
    . 
    . 
    . 
} 

Étant nouveau MVVM, je ne suis pas sûr où commencer sur la façon d'obtenir l'élément spécifique à un index spécifié. Aurais-je utiliser les méthodes LINQ?

Where(i => i.Item1[SpecifiedIndex?]); 

Exemple:

Output: Collection Index 1:Item1, Item2, Item3, Item4. 
Output: Collection Index 2:Item1, Item2, Item3, Item4. 
Output: Collection Index 3:Item1, Item2, Item3, Item4. 

Je suis coincé sur la façon d'obtenir les éléments de la collection dans l'ordre. Je les ai ajoutés et si j'utilise une boucle Foreach, je suis capable de retourner tous les éléments tels que la sortie représentée. Cependant, je n'ai pas besoin de tous pour imprimer. J'ai besoin des éléments à un index donné.

+0

Vous avez donc juste besoin de Item1 à Item4 sur un index spécifique? – sachin

+0

question pas claire, que voulez-vous 'index' à faire? pouvez-vous remplacer avec des noms de variables significatifs? –

Répondre

1

Je ne suis pas sûr de savoir quelle est votre question. Votre Où n'a aucun sens; comment indexez-vous un nombre entier?

Quoi qu'il en soit, collection[specifiedIndex].Item1 obtient la valeur Item1 de l'objet de la collection à cet index. Si c'est ce que vous demandez.

Si vous voulez que tous les objets de collection où Item1 == 9,

var x = collection.Where(item => item.Item1 == 9); 

Je veux dire, il est juste une collection. Comme une liste, mais il arrive aussi de soulever des notifications.

+0

Je n'avais lu que sur "Où" et je ne savais pas comment l'utiliser mais cela fonctionne vraiment! Merci Ed! – ScottieA11