Saturday, January 1, 2022

WinForm ListBox with ComboBox

इस पोस्ट में यह दिखाया गया है कि कैसे कॉम्बो बॉक्स और लिस्ट बॉक्स के डाटा की आपस में बाइंडिंग हो सकती है। उदाहरण के लिए मान लीजिए कि दो तरह के ऑब्जेक्टस है टीचर और स्टूडेंट। टीचर की लिस्ट और स्टूडेंट की लिस्ट दी हुई है। कॉम्बो बॉक्स के भीतर टीचर और स्टूडेंट दो ग्रुप लिस्ट के रूप में दर्ज हैं। जब यूज़र कॉम्बो बॉक्स में से टीचर आइटम को सेलेक्ट करता है तो लिस्ट बॉक्स में टीचर से जुड़े हुए सारे टीचर के नाम परिलक्षित होने लगता है। इसी तरह जब यूज़र कॉम्बो बॉक्स में से स्टूडेंट को सेलेक्ट करता है तो लिस्ट बॉक्स में स्टूडेंट से जुड़े हुए सारे स्टूडेंट के नाम की लिस्ट परिलक्षित होने लगता है।

Student class:-

अब हम देखते हैं कि यह कार्य कैसे कर सकते हैं। इसके लिए हम Student नाम का क्लास बनाते हैं। स्टूडेंट क्लास की प्रॉपर्टीज और मेथड निम्न है:-


using System.Collections.Generic;

namespace ListBoxDataBinding
{
    class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string City { get; set; }

        public static List GetStudents()
        {
            List students = new List()
            {
                new Student(){ Id=1, Name="Ajeet Kumar", Age=29, City="Delhi"},
                new Student(){ Id=2, Name="Ria Gupta", Age=22, City="Delhi"},
                new Student(){ Id=3, Name="Mina Kumari", Age=23, City="Agra"},
                new Student(){ Id=4, Name="Dipak Chopra", Age=26, City="Delhi"},
                new Student(){ Id=5, Name="Tom Alter", Age=28, City="Goa"},
                new Student(){ Id=6, Name="John Mary", Age=24, City="Patna"},
            };
            return students;
        }
    }
}

Teacher class:-

इसी तरह Teacher क्लास बनाते हैं जिसकी प्रॉपर्टीज और मेथड  निम्न है :


using System.Collections.Generic;
namespace ListBoxDataBinding
{
    class Teacher
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Subject { get; set; }

        public static List GetTeacher()
        {
            List teachers = new List()
            {
                new Teacher(){ Id=1, Name="Prof. Raman",Subject="Physics"},
                new Teacher(){ Id=1, Name="Prof. Rina",Subject="Hindi"},
                new Teacher(){ Id=1, Name="Prof. Madan",Subject="English"},
                new Teacher(){ Id=1, Name="Prof. Amar",Subject="Biology"},
                new Teacher(){ Id=1, Name="Prof. Jaya",Subject="Mathematics"},

            };
            return teachers;
        }
    }
}

Group class:-

तीसरा क्लास Group नाम का बनाते हैं जिसमें दो प्रॉपर्टीज और एक मेथड है जो इस प्रकार है:


using System.Collections.Generic;

namespace ListBoxDataBinding
{
    class Group
    {
        public int GroupId { get; set; }
        public string GroupName { get; set; }
        public static List GetGroup()
        {
            List groups = new List()
            {
                new Group(){ GroupId=1, GroupName="Students"},
                new Group(){GroupId=2, GroupName="Teachers"}
            };
            return groups;
        }
    }
}

Form class:-

अब हम फॉर्म के भीतर इस प्रकार की कोडिंग करते हैं:


using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace ListBoxDataBinding
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            List students = Student.GetStudents();
            List teachers = Teacher.GetTeacher();
            List groups = Group.GetGroup();

            ComboBox1.DataSource = groups;
            ComboBox1.ValueMember = "GroupId";
            ComboBox1.DisplayMember = "GroupName";

            ListBox1.DataSource = students;
            ListBox1.ValueMember = "id";
            ListBox1.DisplayMember = "Name";
        }

        private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ComboBox1.GetItemText(ComboBox1.SelectedItem) == "Students")
            {

                ListBox1.DataSource = Student.GetStudents();
                ListBox1.ValueMember = "id";
                ListBox1.DisplayMember = "Name";
            }
            else if (ComboBox1.GetItemText(ComboBox1.SelectedItem) == "Teachers")
            {
                ListBox1.DataSource = Teacher.GetTeacher();
                ListBox1.ValueMember = "id";
                ListBox1.DisplayMember = "Name";
            }
        }
    }
}

No comments:

Post a Comment

Hot Topics