متى تكون النقطة الصحيحة (من عرض دورة الحياة) لتعيين بيانات حاوية قائمة على Flex 3
-
19-09-2019 - |
سؤال
أقوم بعمل حاوية قائمة مع عارض البند الخاص بي لعرض ملف XML.
الآن، أنا تجاوز public override function set data(value:Object):void
الطريقة في عارض البند الخاص بي، المشكلة هي أنه تم استدعاء هذه الوظيفة عدة مرات (!!) (أكثر من طول موفر البيانات).
ربما أنا لا أقوم بتعيين مقدم البيانات الصحيح، وهنا كيف أفعل ذلك:
أول إعلان ملكية قابلة للتغذية:
[Bindable]
private var _listDataProvider:XMLListCollection;
ثم إنشاء كائن قائمة:
<mx:List id="list" dataProvider="{_listDataProvider}" itemRenderer="myItemRenderer" />
ثم، قم بتحميل XML (مع Urlloader) وفي النتيجة القيام:
_listDataProvider = new XMLListCollection(xml..Person);
بناء XMLListCollection موافق (أستطيع أن أرى ذلك في تصحيح).
ما الخطأ الذي افعله؟؟؟؟؟
شكرا يا رفاق ...
المحلول
يبدو لي أن لدي شعور بأن قائمة Flex 3 ومكونات DataProvider ذات الصلة ستقوم بتعيين البيانات عدة مرات لكل عنصر يعمل على الجولة الأولى (عدم الكفاءة في الإطار). في المرة الأولى، قد يقومون بإعدادها إلى NULL (هل يحدث ذلك؟)، ثم في المرة التالية التي قد يحددها على القيمة.
للحصول على هذا، فقط افعل شيئا مثل:
public function set data(value:Object):void
{
if (super.data == value)
return;
super.data = value;
}
الذي عليه أن يقوم بالخدعة.