كيفية العرض في كل قائمة نصية من leversboxitem مع ملزمة لسلاحات من الجداول المختلفة

StackOverflow https://stackoverflow.com/questions/1816533

  •  08-07-2019
  •  | 
  •  

سؤال

تحياتي للجميع وآسف على لغتي الإنجليزية! لدي قائمة قائمة ، إنه extssource = myclientslist.defaultView. تحتوي عناصر ListBox على قالب (ControlTemplate) ، والذي يتم تعريفه في ملف موارد منفصل. يحتوي كل عنصر على القليل من النص ، والنص ، لكل عنصر لكل منهما ملزم لحقول كائن MyClientsList.

أحتاج إلى إضافة قالب العنصر هذا المزيد من Texblock ويجب أن يكون لكل منهم ملزمة لحقول أخرى من قائمة Myorderslist. - (لذلك أود أن أعرض على كل سطر من معلومات قائمة القائمة من جداول مختلفة من قاعدة البيانات الخاصة بي - هذا سؤال).

المشكلة في أن extervox الخاص بـ expbox يحتوي على رابط لـ Object MyClientsList ولا يمكنني تعيين myorderlist على عناصر extorsource من نفس القائمة. لذلك يجب أن أجد طريقة لتحديد textblock.datacontext داخل ControlTemplate أو كيف يمكن حل هذه المشكلة بطريقة أخرى؟

ملاحظة: أنا جديد في .NET و WPF وربما يكون لدي أخطاء في توضيحي - آسف لذلك.

هل كانت مفيدة؟

المحلول

يبدو أن لديك نوعًا من DataGrid من العرض وتريد إضافة المزيد من الأعمدة لعرض معلومات الطلب لعميل معين. إذا كان هذا هو الحال ، فسيتعين عليك القيام بأمرين. أولاً ، ستحتاج إلى إنشاء كائن مركب يقوم بتخزين المعلومات لكلا الكيانين في كائن واحد (لذلك يحتوي كل صف من التحكم على جميع البيانات التي يحتاجها إلى عرضها). ثانياً ، أوصي باستخدام عنصر تحكم بيانات فعلي لعرض الصفوف بدلاً من ترتيب قائمة القائمة. إن ListView مع GridView مدمجة في الإطار ليست رائعة ، لذلك أوصي DataGrid من Wpftoolkit للحصول على خيار مجاني.

نصائح أخرى

هناك مشكلتان هنا ، إذا فهمت السؤال: كيف يمكنك إنشاء مجموعة واحدة تحتوي على كل من العملاء والطلبات ، وكيف تعرض العملاء والطلبات بطرق مختلفة في نفس القائمة؟

بخصوص الأول ، يمكنك القيام بذلك باستخدام compositecollection.

فيما يتعلق بالثاني ، حدد اثنين من datatemplates بدلا من controlTemplate. كمفتاح كل datatemplate ، استخدم نوع الكائن الذي ستقدمه على سبيل المثال

<DataTemplate x:Key="{x:Type local:Client}">

بدلاً من ذلك ، استخدم عناصر Control.itemTemplateSelector لتشير بشكل صريح إلى DataTemplates مختلفة اعتمادًا على نوع العنصر. ot إذا كان عليك حقًا استخدام ControlTemplates ، تحقق من عناصر control.itemContainersTyLeselector.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top