Autor Beitrag
Chiyoko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 298
Erhaltene Danke: 8

Win 98, Win Xp, Win 10
C# / C (VS 2019)
BeitragVerfasst: Sa 04.06.11 14:57 
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...
ausblenden 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
ausblenden volle Höhe C#-Quelltext
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:
// Wrapper
namespace Project_aum
{
    /// <summary>
    /// Aum Fachbegriffe - deutsch / englisch - auslesen der Fachbegriffe.xml Knoten
    /// Root wird übergeben
    /// </summary>
    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;          // standarteinstellung deutsch 

// Gruppenzuweisung
     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");

        }


// Aufruf
   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.
Chiyoko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 298
Erhaltene Danke: 8

Win 98, Win Xp, Win 10
C# / C (VS 2019)
BeitragVerfasst: Sa 04.06.11 16:27 
Ach ja......*seufz*

ausblenden C#-Quelltext
1:
 this.listview_fachbegriffe.Groups.Clear();