كيف يمكنني ربط قائمتين معًا من خلال مجموعة يمكن ملاحظتها في VB.NET؟

برمجة


مرحبا الرجال

هنا لدينا listORG مع 3 حقول:

IDX , القطعة الموسيقية , الاسم
———————————-
1 القطعة 1 جون
2 القطعة 2 جون
3 القطعة 3 جون
4 دراسة 4 يوحنا
5 القطعة الموسيقية 5 مرح
6 القطعة الموسيقية 6 مرح
7 القطعة 7 جون
8 الدراسة8 جون
9 Etude9 مرح

هنا لدينا قائمة HowMany :

Idx، الاسم، HowManyEtudes
———————————————-
1 يوحنا 6
2 مرح 2

لذا، إذا رأيت، فإن القائمة الثانية توضح عدد الدراسات الخاصة بالشخصين جون وميري.

لذلك أريد برمجة هذا عن طريق Observable Collection. لأنني أريد أي تحديث لأي من هذه القوائم، لتحديث القائمة الأخرى. مثل إضافة جديد أو حذف أو تعديل.

هل يمكنك مساعدتي في هذا الأمر؟

ما حاولت:

في الواقع، قمت بتجربة بعض الرموز من الإنترنت، لكن لم يحالفني الحظ.

الحل 1

هناك مشاكل هنا فيما تريد القيام به: لا يمكنك استخدام مجموعة ObservableCollection واحدة لقائمتين مختلفتين، وبينما يمكنك وضع جميع العناصر من كليهما في ObservableCollection مكتوبة بشكل ضعيف وإلقاءها بشكل مناسب عند الوصول إليها، فليس الأمر كذلك تمامًا مثل وجود مجموعات منفصلة وسيجعل التعليمات البرمجية الخاصة بك أكثر تعقيدًا وصعوبة في القراءة/الصيانة.

يمكنك استخدام مجموعتين ObservableCollections، وهذا من شأنه أن يعمل بشكل جيد إلى حد معقول – ولكن حتى ذلك الحين، فإن ذلك لا يثير الحدث إلا عندما يتم تغيير المجموعة بواسطة عملية الإضافة أو الإزالة أو إعادة الترتيب. لن تحصل على حدث عندما يتم تغيير أعضائه في عنصر في المجموعة: myObservableCollection(0).Name = "New name" لن يولد حدثا.

الحل 2

سوف تستخدم أ CollectionViewSource واستخدام التجميع. أفترض أنك تستخدم WPF. هنا عينة: كيفية: فرز البيانات وتجميعها باستخدام طريقة عرض في XAML – WPF .NET Framework | مايكروسوفت تعلم[^].

إليك بعض الأشياء الإضافية التي يمكنك القيام بها باستخدام CollectionViewSource: كوليكشن فيو سورس | 2000 معلومة يجب أن تعرفها عن WPF[^]

فيما يلي مثال باستخدام الكود فقط: التجميع على أساس خاصيتين أو أكثر[^]

コメント

タイトルとURLをコピーしました