سؤال

أولاً لدي Listbox وقمت بتعيين DataSource على MyObjectCollection

يقوم MyObjectCollection بتنفيذ واجهة IListSource التي تحتوي على MyObject

MyObject لديه الطريقة

public override string ToString()
{
    return "test";
}

يعرض مربع القائمة الآن "اختبار" لكل عنصر في MyObjectCollection.

ولكن إذا قمت بتطبيق واجهة IListSource على MyObject أيضًا.يعرض مربع القائمة سلسلة فارغة.كيفية إصلاح ذلك في فئة "MyObject".الحل البديل هو إصلاحه في حدث تنسيق Listbox، ولكن يجب على كل عنصر من عناصر واجهة المستخدم الرسومية تنفيذ هذا الحل البديل :/

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

المحلول

عموما، ينبغي للأمور أيضاً تكون قوائم، أو ينبغي أن يكون كيانا للربط.إذا كانت قائمة (IList أو IListSource) فإن الكثير من واجهات برمجة التطبيقات (API) المرتبطة بالبيانات ستفترض أنك تريد ذلك بالفعل (بالنسبة لسيناريوهات الربط البسيط، على سبيل المثال:صف واحد) أولاً عنصر من القائمة الفرعية.

أود ببساطة تغييره بحيث MyObject لا ينفذ IListSource, ، لكن يغلف ذلك، وربما تعريضه عبر أ Items ملكية.يمكنك أيضًا الاطلاع على ما إذا كان العرف TypeConverter ستعمل (سأقوم بالتحقيق ...)

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