Huhu,
ich habe wieder einmal ein Problem, was scheinbar an meinem Code liegt.
Wie der Titel schon sagt, wundere ich mich, dass das Einlesen in ein Listview
nach jedem Aufruf länger dauert.
Ich führe das auch auf die Gruppen zuweisung zurueck.
Hier ein Beispiel meines Codes:
XML ausschnitt...
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| <Fachbegriffe> <fachitem_de> <id>Diffuse</id> <Fach>Streulicht des Materials in Anhängigkeit der 3 Grundfarben RBG</Fach> </fachitem_de> <fachitem_de> <id>Dynamic-flag</id> <Fach>Änderung der Parameter und Position eines Objektes zur Laufzeit.Ein reset erhöht die Framerate</Fach> </fachitem_de> </Fachbegriffe> |
Code fragment
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103:
| namespace Project_aum { public class Fachbegriffe_wrapper { public XElement Fach_root{ get; set; } public string Fach_id { get { return Fach_root.Element("id").Value; } } public string Fach_inhalt { get { return Fach_root.Element("Fach").Value; } }
public Fachbegriffe_wrapper() { } public Fachbegriffe_wrapper(XElement _Fach_root) { Fach_root = _Fach_root; } } }
static private bool DE = true; private void Fachbegriffe_groups(XElement fach_attribute, ListViewItem item) { this.listview_fachbegriffe.BeginUpdate(); Fachbegriffe_wrapper Fachbegriffe_class = new Fachbegriffe_wrapper(); Fachbegriffe_class.Fach_root = fach_attribute;
ListViewGroup fachb_groupA = new ListViewGroup("A", HorizontalAlignment.Left); ListViewGroup fachb_groupB = new ListViewGroup("B", HorizontalAlignment.Left); ListViewGroup fachb_groupC = new ListViewGroup("C", HorizontalAlignment.Left); ListViewGroup fachb_group_default = new ListViewGroup("n/a", HorizontalAlignment.Left);
this.listview_fachbegriffe.Groups.AddRange(new ListViewGroup[] { fachb_groupA, fachb_groupB, fachb_groupC, fachb_group_default});
string Begriff = Fachbegriffe_class.Fach_id; string Bezeichnung = Fachbegriffe_class.Fach_inhalt;
item = this.listview_fachbegriffe.Items.Add(Begriff); item.SubItems.Add(Bezeichnung);
if (Begriff.StartsWith("A")) { item.Group = this.listview_fachbegriffe.Groups[0]; } else if (Begriff.StartsWith("B")) { item.Group = this.listview_fachbegriffe.Groups[1]; } else if (Begriff.StartsWith("C")) { item.Group = this.listview_fachbegriffe.Groups[2]; } else { item.Group = this.listview_fachbegriffe.Groups[26]; }
this.listview_fachbegriffe.EndUpdate();
private void fachbegriffe_DE() { this.listview_fachbegriffe.Items.Clear(); Nachrichten_form msg_form = new Nachrichten_form(); Fachbegriffe_wrapper Fachbegriffe_class = new Fachbegriffe_wrapper(); ListViewItem item = new ListViewItem();
if (File.Exists("Fachbegriffe.xml")) { XDocument doc = XDocument.Load(Path.Combine(Application.StartupPath, ("Fachbegriffe.xml"))); var fachbegriff_id = doc.XPathSelectElements("//fachitem_de");
foreach (var fachbegriffelement in fachbegriff_id) { Fachbegriffe_class.Fach_root = fachbegriffelement; Fachbegriffe_groups(fachbegriffelement, item); } } else msg_form.Show_extern_message("Fachbegriffe.xml exestiert nicht");
}
private void treeview_aumindex_AfterSelect(object sender, TreeViewEventArgs e) { switch (e.Node.SelectedImageIndex) { case 14: this.listview_fachbegriffe.BeginUpdate();
if (DE) { this.fachbegriffe_DE(); } if (ENG) { this.fachbegriffe_ENG(); }
this.listview_fachbegriffe.EndUpdate();
break; } } |
Ein Rat wäre super.Danke.