منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
listview groups - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : listview groups (/showthread.php?tid=16460)



listview groups - أسامة - 16-07-16

اذا كان يوجد داخل listview هذه ال groups (Test1 Test2 Test3 Test4 ) مثلآ Test1 يقبل من العدد صفر الى 100 و Test2 من 100 الى 200  باستخدام هذا الكود يتم الحصور على الارقام المحصورة بين 0 و 100
كود :
i > -1 AndAlso i < 101

و للاضافة item ل group معين باستخدام
كود :
         Dim list As ListViewItem = New ListViewItem
       If i > -1 AndAlso i < 101 Then
           list.Group = ListView1.Groups("Test1")
           list.Text = ""
           list.SubItems.Add(0)
       Else if i > 100 AndAlso i < 201 Then
           list.Group = ListView1.Groups("Test2")
           list.Text = ""
           list.SubItems.Add(0)
       End If
الذى احتاجة هو اضافة هذه الارقام من ملف xml الى listview الى الجروب الخاص بها استخدم هذا الكود للاضافة من xml الى listview 
كود :
        Using reader As XmlReader = XmlReader.Create("test.xml")

            Dim No1 As String
            Dim No2 As String
            Dim No3 As String
            Dim mData As String

            While reader.Read()

                ' Name, Age
                If reader.NodeType = XmlNodeType.Element Then

                    No1 = reader("No1")
                    No2 = reader("No2")
                    No3 = reader("No3")
                End If

                ' Data
                If reader.NodeType = XmlNodeType.ProcessingInstruction Then

                    If reader.Name = "Data" Then

                        Dim valueStart As Integer = reader.Value.IndexOf(Chr(34)) + 1
                        Dim valueEnd As Integer = reader.Value.LastIndexOf(Chr(34))
                        Dim value As String = reader.Value.Substring(valueStart, valueEnd - valueStart)
                        mData = (mData & " " & value).Trim

                    End If

                End If

                If reader.NodeType = XmlNodeType.EndElement Then

                    If mData <> "" Then

                        ListView1.Items.Add(New ListViewItem(New String() {No1, No2m No3, mData}))

                        No1 = ""
                        No2 = ""
                        No3 = ""
                        mData = ""

                    End If

                End If

            End While
        End Using
'شكرآ للاخ الوادى
فكرت فى اضافى list مثلآ اذا كان No1 من 0 الى 100 يتم اضافتها الى Test1 لكن لم تنجح محتاج التفرجة بين الارقام فى No1 فقط


RE: listview groups - أسامة - 16-07-16

تم الحل لاكن تواجهنى مشكلة اخى الان

كود :
           listviewViewItem listview = new listviewViewItem();
           listview.Text = No1;
             int i = Convert.ToInt32(Item_ID);
     if (i > -1 && i < 101)
       {      
           listviewview.Items.Add(No1);
           listview.SubItems.Add(No2);
           listview.SubItems.Add(No3);
           listview.SubItems.Add(Data);
           listview.Group = listviewview.Groups["Test1"];
           No1= "";
           No2= "";
           No3= "";
           Data= "";
}
else if (i > 100 && i < 201)
{
           listviewview.Items.Add(No1);
           listview.SubItems.Add(No2);
           listview.SubItems.Add(No3);
           listview.SubItems.Add(Data);
           listview.Group = listviewview.Groups["Test2"];
           No1= "";
           No2= "";
           No3= "";
           Data= "";
}
المشكلة ان يتم تكرار اخر item فى xml و تكرار ال Data
كل ماكان عدد ال items اكثر كل ما زادت ال Data المفروض كل Data=0 لاكن يتم تكرارها على حسب عدد ال items التى تم اضافتها يوجد صوره فى المرفق توضح اكثر
تم ارفاق المشروع افضل