سؤال

لدي عنصر تحكم مستخدم WPF يرتبط بـ a DataTable ويولد CheckBox وملثم EditBox لكل صف في أ DataTable.لدي عدة مثيلات لعنصر التحكم هذا في النموذج الخاص بي.العدد الإجمالي لل CheckBoxعدد العناصر التي سيتم إنشاؤها يزيد عن 200.أرى بعض مشكلات أداء العرض.يتم تحميل النموذج مع كافة عناصر التحكم الثابتة (مربعات النص، والقوائم المنسدلة) على الفور، ثم يتم تحميله بعد عدة ثوانٍ CheckBoxتظهر.

أي أفكار؟

شكرًا

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

المحلول

وإذا لم كل 200 العناصر مرئية على الشاشة، يجب أن تكون باستخدام نوع من التخطيط الظاهري الذي يخلق شجرة البصرية فقط للعناصر مرئية. هذا وسوف تحسن كثيرا من أدائك.

نصائح أخرى

ما هو "توليد" ومربعات؟ يجب أن تكون باستخدام ItemsControl (أو فرعية)، وربط البيانات التي تمثل خانات الاختيار لذلك. على افتراض كنت تفعل ذلك، ثم ما تريد القيام به هو الحصول على هذا ItemsControl لاستخدام "virtualizing" من خلال تطبيق الملكية VirtualizingStackPanel.IsVirtualizing إلى ItemsControl مثل ذلك:

<ItemsControl VirtualizingStackPanel.IsVirtualizing="true" ... >

وقد ترغب أيضا لتشغيل "إعادة التدوير الحاويات" والتي سوف تساعد أيضا الأداء. ويتم ذلك أيضا مع خاصية المرفقة:

<ItemsControl VirtualizingStackPanel.VirtualizationMode="Recycling" ... >

من المؤكد أن عددًا كبيرًا جدًا من مربعات الاختيار يكلف الكثير، إذا نظرت إلى قوالب عناصر التحكم الأساسية، فستجد أنها مليئة أيضًا بالكثير من العناصر.

أود أن أقترح ما إذا كان بإمكانك تقسيم واجهة المستخدم الخاصة بك إلى علامات تبويب أو أكوردين مما سيؤدي إلى تقليل ظهور العناصر على شاشة واحدة، كما سيساعد المستخدم على التنقل إلى العناصر بسهولة وأسرع أيضًا.

سيساعدك برنامج VirtualizingStackPanel، ولكن إذا لم يكن الارتباط صحيحًا، فقد يؤدي ذلك إلى نتائج غير متوقعة.

  1. قالب التحكم المخصص:يمكنك أيضًا إنشاء قالب مربع الاختيار المخصص الخاص بك باستخدام أقل عدد من عناصر UIE، مثل مستطيل بسيط مملوء بألوان مختلفة في مشغل الخاصية IsChecked.سيؤدي هذا إلى التخلص من عدد قليل من الرسوم المتحركة وما إلى ذلك والتي يمكنها بالتأكيد تحسين أداء العرض الخاص بك.أعتقد أن CheckBox هو الأقل أهمية عندما يتعلق الأمر بتحريك واجهة المستخدم.

  2. عندما تكون متأكدًا من أنك ستستخدم "النص" كمحتوى، فما عليك سوى إنشاء قالب بمستطيل لإظهار القيمة المملوءة/الفارغة ووضع TextBlock مع ربط القالب بالمحتوى.

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

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