Wie pre-wählen Sie mehrere listview/gridview-Elemente in C#/XAML für windows 8 app?
in meiner app gibt es gridview meiner benutzerdefinierten Klasse. Ich bin mit benutzerdefinierten Daten-Vorlage und Werte gebunden sind, die von SQLite. Nun, wenn Benutzer die app starten, die bestimmte Elemente (NICHT EINZELNE) sollten vor-ausgewählt, in der gridview/listview. Gridview/listview erlaubt eine Mehrfachauswahl. Wie kann ich erreichen, das mit SelectedItem-Eigenschaft ?
UPDATE : ich habe diese, es funktioniert nicht für mich. Gibt 0 zurück, Auswahl.
UPDATE 2 : ich habe den 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);
}
}
}
UPDATE 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;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe endlich Antwort von MSDN. Dank ForInfo
XAML-Seite
C#
Können Sie die Eigenschaft SelectedItems.
SelectedValuePath
aus der SQLite-Datenbank.Können Sie die SelectedItems-Eigenschaft und rufen Sie SelectedItems.Add() oder SelectedItems.Remove() zum hinzufügen/entfernen von Elementen aus der Auswahl.
Wenn Sie ItemsSource-Bindung auf das GridView-Steuerelement können Sie die ListViewExtensions.BindableSelection angefügte Eigenschaft von WinRT XAML Toolkit (sollte es mit einem GridView zu, da es eine Unterklasse von ListViewBase) als in der Beispiel-Seite.
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); } }
Ich habe versucht, es funktioniert nicht.if ((Database.Tag)lvitem == item)
lvTags.SelectedItems
ist, dass die Personen, sondern die Listenansicht nicht anzeigen ausgewählt.lvTags.SelectedItems.Add(lvitem)
genannt und istlvTags.SelectedItems.Count
ist auch größer als null ist, d.h. es ist der gleiche Wert wieMyList.Count
. Ich schlage vor, Sie geben mir keine Probe-Projekt. Ich wäre Ihnen sehr dankbar, dass Sie.Ich gelöscht meine ursprüngliche Antwort da yo nicht verwenden die Datenbindung und meine Antwort wird nicht für Sie nützlich sein.
Fand ich dies erst jetzt, dass Sie eventuell nützlich:
"SelectedItems-Eigenschaft ist schreibgeschützt und kann nicht direkt festgelegt werden"
Daher für eine Lösung, welche Ihnen möglicherweise helfen, finden Sie diese Artikel.
Query<T>()
Methode.