سؤال

مرحبًا يا شباب ، لديّ WPF TreeView يحتوي على ثلاث عقد ، أود أن يحتوي الطفل الأخير (العقدة الثالثة) على ListView ملعب مع بيانات ملزمة. المشكلة التي أركض فيها هي أنه إذا وضعت ListView في itemtemplate من HierarchicalDatateMplate ، أحصل على عرض قائمة لكل طفل بدلاً من عرض قائمة واحدة مع المحتوى. هذا هو السلوك المتوقع لكل الوثائق ، لكنني أبحث عن عمل حوله (ربما أقوم بتعديل itemContainersTyle) ، للأسف ليس لدي أي خبرة تقريبًا في قالب التحكم في TreeViewitem ، أو عن هذا الأمر الكثير من التجربة مع TreeViews بشكل عام.

لقد بحثت في إمكانية استخدام Treelistview ، لكنها لا تناسب حالة الاستخدام الخاصة بي ، كما أنها تربط عنصر تحكم منفصل وعرض البيانات بهذه الطريقة.

هل قام أي شخص إما بالتعبير عن صداع ListView في TreeViewItem ، أو هل يمكن لأي شخص أن يقترح كيفية تعديل ControlTemplate لإنجاز هذا؟

شكرا لك ، AJ

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

المحلول 2

تبين أن أسهل طريقة للتعامل مع الموقف هي استبدال التسلسل الهرمي على العقد الثاني مع موسع ، وتعيين sexsource على ListView بدلاً من التسلسل الهرمي ، وإعادة تصوير الزر على الموسع لتبدو مثل TreeViewItem. ... نوعا ما اختراق لكنه يعمل :)

شكرا لجميع التعليمات،

AJ

نصائح أخرى

يجب أن تكون العقدة التي تحتوي على ListView نوع بيانات مختلف عن العقدتين الأخريين بحيث يمكن التعامل معها بشكل مختلف بواسطة TreeView. كما يبدو أن الطفل الذي يحتوي على بيانات عرض القائمة يجب ألا تكون في HierarchicalDataTemplate لكن منتظم DataTemplate واحد ، لأنه لا يوجد لديه عناصر طفل أخرى معترف بها من قبل TreeView. يمكنك مزج ومطابقة HierarchicalDatateMplate و datatemplates العادية في TreeView كما ترى مناسبة ، datatemplates العادية تمثل العقد "ورقة" ، ليس لديهم أي أطفال.

عينة مع أنواع البيانات المختلفة المستخدمة في TreeView ولكن لا تزال تستخدم القوالب الهرمية:

<HierarchicalDataTemplate DataType="{x:Type FooNormal}" ItemsSource="{Binding TreeviewChildNodeCollection}">
   // do something else here.
</HierarchicalDataTemplate>

<HierarchicalDataTemplate DataType="{x:Type FooList}" ItemsSource="{Binding TreeviewChildNodeCollection}">
  <ListView  ItemsSource="{Binding ListviewChildNodeCollection}">
   //use listview here
  </ListView>
</HierarchicalDataTemplate>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top