PDA

View Full Version : مقاله: ساختن فرم با استفاده از Data Binding



gwbasic
پنج شنبه 02 تیر 1390, 10:50 صبح
در تاپیک زیر به آموزش Data Binding پرداختم:

http://barnamenevis.org/showthread.p...8-Data-Binding (http://barnamenevis.org/showthread.php?288558-Data-Binding)



قبل از اینکه به ادامه آموزش ومبحث Master Details بپردازم ، سوالی رو مطرح می کنم! هر کسی علاقمند بود می تونه این سوالو جواب بده و در حقیقت کد این برنامه رو بنویسه در پایان جواب رو همراه با آموزش در تاپیک بالا قرار می دم.
بهتره در کدتون از DataBinding استفاده کنید ولی محدودیتی وجود نداره هر طوری که مایلید می تونید بنویسید. از آموزش تاپیک بالا هم می تونید استفاده کنید.
اما سوال:
فرض کنید دو کلاس دارید به نامهای Course دارای پراپرتی های Id,Name,Grade (کد درس و نام درس و نمره) و Student که دارای پراپرتی های Name, Age و دارای لیستی از دورسCourses می باشد.



publicclassCourse
{
privateint id;
publicint Id
{
get { return id; }
set { id = value; }
}

privatestring name;
publicstring Name
{
get { return name; }
set { name = value; }
}
privateint grade;
publicint Grade
{
get { return grade; }
set { grade = value; }
}
public Course()
{
}
public Course(int cid, string cname, int g)
{
Id = cid;
Name = cname;
Grade = g;
}
}

publicclassStudent
{
privatestring name;
publicstring Name
{
get { return name; }
set { name = value; }
}
privateint age;
publicint Age
{
get { return age; }
set { age = value; }
}
BindingList<Course> courses;
publicBindingList<Course> Courses
{
get { return courses; }
set { courses = value; }
}
public Student()
{
}
public Student(string n, int a)
{
Name = n;
Age = a;
}
}




فرمی دارید به شکل زیر:

71491


که دارای دو لیست باکس که یکی شامل لیست دانش آموزان و دیگری شامل لیست دورس مربوط به دانش آموز انتخاب شده در لیست باکس اولی می باشد و با سکرول روی لیست باکس دانش آموزان هم تکس باکس ها تغییر می کند و هم لیست دروس آن دانش آموز در لیست باکس مربوطه. ضمنا با اسکرول لیست باکس دروس درس مربوطه در تکس باکسهای مربوط به آنها نمایش داده می شود و مهمترین مسئله این است که با تغییر مقادیر تکس باکس ها بقیه کنترل ها هم بروز می شود. مثلا اگر نمره یک درس تغییر می کند ضمن اینکه این تغییر در لیست باکس دروس بصورت همزمان نمایش داده می شود معدل دانش آموز هم در لیست باکس دانش آموزان نیز بروز شود.


تنها نکته ای که باقی می مونه اینه که داده ها از قبل به صورت Hard Code در فرم قرار دارند و در فرم فقط میتوان آنها را ویرایش کرد و امکان اضافه یا حذف وجود ندارد



privatevoid Initialize()
{
Students = newBindingList<Student>();
Student stu = newStudent("Mohsen", 18);
stu.Courses = newBindingList<Course>();
stu.Courses.Add(newCourse(1, "Math", 12));
stu.Courses.Add(newCourse(2, "Physics", 15));
stu.Courses.Add(newCourse(3, "Chemistry", 16));
Students.Add(stu);
stu = newStudent("Ali", 19);
stu.Courses = newBindingList<Course>();
stu.Courses.Add(newCourse(1, "Physics", 20));
stu.Courses.Add(newCourse(2, "Math", 18));
stu.Courses.Add(newCourse(3, "Chemistry", 19));
Students.Add(stu);
stu = newStudent("Maryam", 15);
stu.Courses = newBindingList<Course>();
stu.Courses.Add(newCourse(1, "Physics", 18));
stu.Courses.Add(newCourse(2, "Math", 15));
stu.Courses.Add(newCourse(3, "Chemistry", 12));
stu.Courses.Add(newCourse(4, "Aljebra", 10));
Students.Add(stu);
}





لطفا پروژه زیر را کامل کنید و در همین تاپیک UpLoad کنید

gwbasic
پنج شنبه 02 تیر 1390, 18:33 عصر
کسانیکه علاقمند هستند لطف کنن پست بگذارن تا تاپیک بالا بیاد و بیشتر دیده بشه و افراد بیشتری بتونن شرکت کنن
اگه ابهامی هم هست می تونن در همین تاپیک بپرسن

gwbasic
جمعه 03 تیر 1390, 06:44 صبح
جالبه یکبار هم پروژه Download نشده یعنی واقعا کسی تمایل نداره این برنامه رو بنویسه ویا دلیله دیگه ای داره اگه اینطوره لطفا نظرتون رو بگین

gwbasic
شنبه 04 تیر 1390, 11:46 صبح
جهت بالا آوردن تاپیک

shocraneh
یک شنبه 05 تیر 1390, 16:54 عصر
سلام دانلود کردم ولی کار نمیکنه !!البته کدها رو خط به خط اجرا کردم مشکلی نداره منم تعجب کردم چرا چیزی نمایش نمیده

gwbasic
دوشنبه 06 تیر 1390, 10:07 صبح
سلام دانلود کردم ولی کار نمیکنه !!البته کدها رو خط به خط اجرا کردم مشکلی نداره منم تعجب کردم چرا چیزی نمایش نمیده

در پست یک سوالی رو مطرح کردم که دوستان جواب بدند و این پروژرو کامل کنن با استفاده از تصوری که از Data Binding دارند و یا هر جوری که دوست دارن...
البته مثل اینکه کسی نمی تونه اینکارو انجام بده؟!؟!؟!؟!؟!؟!؟!؟!!؟؟!؟
بنابراین پروژه کامل نیست البته اگه کسی این کارو انجام بده حتی ناقص حتما با توضیحات کامل کدشو خواهم گذاشت

gwbasic
چهارشنبه 22 تیر 1390, 04:38 صبح
متاسفانه کسی مشارکت نکرد اما من کدو می ذارم ببینید که قدرت DataBinding چقدر بالاست و اگه درست استفاده بشه چقدر در خوانایی و کمتر کردن کد نویسی می تونه کمک کنه

saman6384
چهارشنبه 22 تیر 1390, 10:33 صبح
خوب بد موقعی گذاشته بودی!
تو امتحانا!
من خودم الان دیدم تاپیک رو!

gwbasic
جمعه 24 تیر 1390, 06:28 صبح
امیدوارم در آینده اینطور نشه و دوستان مشارکت کنند! البته نمی دونم افرادی که به این سایت مراجعه می کنند اکثرا دانشجو هستند یا خیر؟ من تصورم چیزه دیگه ای بود

در مورد کدی که گذاشتم کسی نظری نداره ؟!؟!؟؟!