XamlWriter/Reader -> مكالمات مُنشأة متعددة مما يؤدي إلى عناصر مكررة

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

سؤال

أنا عالق هنا. أنا أستخدم مكتبة dragndrop التي تسلسل uielements التي تم سحبها عبر xamlWriter.save ().

الآن أحاول سحب بعض مثيلات الشبكة الممتدة. في المنشئ ، دفع بعض العناصر إلى الشجرة البصرية. يتم استدعاء المُنشئ عندما يتم إلغاء التخلص من الكائن ويتم إضافة العناصر مرة أخرى (ومرة أخرى اعتمادًا على عدد المرات التي أقوم فيها بتسريدروب). من المحزن أن الأطفال يخبرني أنه لا توجد عناصر طفل إذا استرجعت القيمة من داخل المنشئ. إذا استرجعته من الخارج (بواسطة mygrid.children.count) ، فإنه يعطيني المبلغ الأعلى (غير المرغوب فيه).

هل هناك أي وظيفة أخرى يجب أن أستخدمها لتهيئة الصور المرئية؟ أو أي طريقة أخرى لمنع تلك التكرارات؟

شكرا وهتافات

لا يوجد حل صحيح

نصائح أخرى

استغرقت بعض الوقت ، لكن يبدو أنني وجدت حلاً.
أنا الآن قادر على إنشاء فئة أساسية تحتوي بالفعل على العناصر المرئية التي تحتاجها جميع الفئات الفرعية. وهي قابلة للتشكيل عبر XamlWriter/القارئ دون تكرارات. يا للعجب.

1) تمديد USERCONTROL (لا ADD-> USERCONTROL ولكن ADD-> الفئة وروث يدويًا)
2) وضع initializeControl () القياسية () ؛ في المنشئ
3) تنفيذ initializeControl () ووضع تخطيط ، إضافة الطفل وأي شيء هناك
4) xamlwrite/xamlread/وراثة مثل الجنون

آمل أن يكون ذلك مفيدًا لشخص ما وأنني لم أشرف على غير المتوقع ..

- تحرير: بالطبع. سيكون هناك تكرارات ولكن لا يمكننا رؤيتهم. بعد أن يتم تشغيل XamlReader من خلال هناك uielements التي تم إنشاؤها بواسطة initializeComponent () وتلك التي يتم الحصول عليها من XAML بعد ذلك. أي مراجع في الكود تعتبر عناصر التحكم التي أنشأتها التعليمات البرمجية والتي لا تظهر:/

تنهد.

واحدة بعيدة عن الطريقة المثالية حول هذا هو وضع التبديل في معالج الأحداث المهيئة ، مثل ذلك:if(HasContent)
Initialize();
else
Reinitialize();
Multiinitialize();

حيث يقوم التهيئة () بإضافة uieielement control = FindName("controlName")) ويعيد Multiinitialze () إنشاء معالجات الأحداث وما الذي يضيع في الطريق من خلال XamlReader.

حسنًا ، يمكنك الآن إنشاء مثيل للمرور الموروثة في XAML ولكن لا توجد طريقة سهلة لضبط السمات. ذلك لأن إعداد السمات يحدث قبل الحدث المهيئ ، وهناك nullpointerexceptions تنتظر. هل يمكن أن تدور حول ذلك مع الارتباطات على ما أعتقد.

ولكن يجب أن يكون هناك طريقة أسهل. أخبرونى من فضلكم!

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