سؤال

لقد قمت بإنشاء UserControl الذي يحتوي على ملف ListView فيه.يمكن الوصول إلى ListView بشكل عام من خلال خاصية.عندما أضع UserControl في نموذج وأحاول تصميم ملف ListView على الرغم من الممتلكات، و ListView يبقى على هذا النحو حتى أقوم بالتجميع مرة أخرى ويعود إلى الحالة الافتراضية.

كيف يمكنني جعل تغييرات التصميم الخاصة بي تلتزم بـ ListView?

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

المحلول

تحتاج إلى تزيين خاصية ListView باستخدام سمة DesignerSerializationVisibility، كما يلي:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ListView MyListView { get { return this.listView1; } }

هذا يخبر منشئ الكود الخاص بالمصمم بإخراج الكود الخاص به.

نصائح أخرى

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

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

ضع في اعتبارك دائمًا أن الصفحة (ومحتوياتها) والكود منفصلان تمامًا في ASP.NET، ويتم توصيلهما في وقت التشغيل.هذا يعني أنك لا تحصل على دعم المصمم الجميل كما تفعل في تطبيق WinForms (حيث يكون النموذج مثيلًا لكائن).

فقط لأكون واضحًا، لقد فعلت شيئًا كهذا، أليس كذلك؟

public ListView MyListView { get { return this.listView1; } }

إذن فأنت تقوم بالوصول (في وقت التصميم) إلى خاصية MyListView في UserControl الخاص بك؟

أعتقد أنه إذا كنت تريد دعمًا مناسبًا في وقت التصميم، فمن الأفضل لك تغيير خاصية "المعدل" في ListView نفسها (مرة أخرى في UserControl الأصلي) إلى Public - وبهذه الطريقة يمكنك تعديل ListView مباشرةً على مثيلات UserControl.لقد نجحت في القيام بذلك على أي حال.

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