Comment faire pour pré-sélectionner plusieurs listview/éléments gridview en C#/XAML application windows 8?
dans mon application il est gridview de ma classe personnalisée. Je suis, en utilisant des modèles de données et les valeurs sont tenus de SQLite. Maintenant, lorsque l'utilisateur lance l'application, la certains articles (PAS SIMPLE) doit être pré-sélectionné dans gridview/listview. Gridview/listview permet la sélection multiple. Comment puis-je réaliser cela avec la propriété SelectedItem ?
Mise à JOUR : j'ai suivi cette, il ne fonctionne pas pour moi. Retourne 0 sélections.
Mise à JOUR 2 : j'ai posté le code
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
using (var db = new SQLite.SQLiteConnection(dbpath))
{
lvTags.ItemsSource = db.Table<Database.Tag>(); //lvTags is listview
if (MyList.Count > 0) //MyList is the static list of class "Database.Tag"
{
foreach (var item in MyList)
foreach (var lvitem in lvTags.Items)
if (lvitem.Equals(item))
lvTags.SelectedItems.Add(lvitem);
}
}
}
Mise à JOUR 3:
public override bool Equals(object obj)
{
Tag tag = obj as Tag;
if (this.TagID == tag.TagID && this.TagName == tag.TagName)
return true;
else
return false;
}
OriginalL'auteur Xyroid | 2012-10-04
Vous devez vous connecter pour publier un commentaire.
Finalement obtenu de réponse à partir de MSDN. Grâce ForInfo
XAML page
C#
OriginalL'auteur Xyroid
Vous pouvez utiliser SelectedItems propriété.
Mais comment puis-je lier des données avec manuellement avant les éléments sélectionnés ? Je suis juste après avoir
SelectedValuePath
à partir de la base de données SQLite.OriginalL'auteur Whyllee
Vous pouvez utiliser la propriété SelectedItems) et appel SelectedItems.Ajouter() ou SelectedItems.Supprimer() pour ajouter/supprimer des éléments à partir de la sélection.
Si vous utilisez ItemsSource de liaison sur le contrôle GridView vous pouvez utiliser le ListViewExtensions.BindableSelection attachés à la propriété de la XAML Toolkit (il devrait fonctionner avec un GridView trop, car c'est une sous-classe de ListViewBase) comme dans le exemple de page.
protected override void OnNavigatedTo(NavigationEventArgs e) { foreach (var item in MyList) //MyList is the list of my custom class having integer and string property. { //It contains the object which will be preselected in listview. MyListView.SelectedItems.Add(item); } }
J'ai essayé cela, il ne fonctionne pas.J'ai aussi essayé ceci
Essayez de partager plus de votre code, y compris le code XAML, le contexte de données, ItemsSource de liaison etc. dans votre question initiale.
J'ai ajouté le code. Pouvez vous s'il vous plaît vérifier maintenant ?
Peut-Être De La Base De Données.Une étiquette à partir d'une de vos listes jamais égale à une Base de données.Tag dans l'autre liste. Tu devrais peut-être utiliser un autre type d'élément de modèles de vue que ce que vous obtenez à partir de la base de données.
OriginalL'auteur Filip Skakun
J'ai supprimé ma réponse originale à cette question depuis yo ne sont pas à l'aide de la liaison de données et ma réponse ne sera pas utile pour vous.
J'ai trouvé ce juste maintenant qui peut vous être utile:
"SelectedItems propriété est en lecture seule et ne peut pas être réglé directement"
Donc, pour une solution qui peut fournir de l'aide, reportez-vous cette article.
Query<T>()
méthode.Mise à jour de ma réponse en fonction de votre commentaire.
Merci, mais je ne suis pas en utilisant MVVM, mine application est simple. Pouvez-vous me donner de simple démo app, qui contiennent plusieurs éléments dans gridview et sur l'app lancée certains seront sélectionnés.
OriginalL'auteur Mamta D