2009-05-05 10 views
13

में पूरा डेटा बाध्यकारी का पता लगाने के लिए कैसे करें जब मैं अपने वृक्षदृश्य पर कोई आइटम चुनता हूं, तो मेरे व्यूमोडेल क्लास को रीफ्रेशिंग और ट्रीव्यू नोड को हाई-लाइट होने के तुरंत बाद एक उल्लेखनीय समय अंतर होता है।डब्ल्यूपीएफ

मुझे इस समय के दौरान एक प्रतीक्षा कर्सर दिखाना होगा - मैंने कोड को लपेटने की कोशिश की है जो मेरे व्यूमोडेल क्लास को तुरंत चालू करता है, लेकिन पूरे डेटा बाइंडिंग खत्म होने से पहले कर्सर दो सेकंड पहले एक तीर पर वापस आ गया है और नोड हाय-लाइट हो जाता है। क्या कोई ऐसी घटना है जो मुझे बताती है कि बाइंडिंग समाप्त होने पर, या जब नोड हाई-लाइट होता है?

यह नोड्स का विस्तार करने के लिए कुछ भी नहीं है, बस शीर्ष-स्तरीय नोड्स का चयन करें।

किसी भी मदद के लिए धन्यवाद।

उत्तर

8

वांछित वृक्ष दृश्य नियंत्रण पर लोड की गई घटना सभी बाइंडिंग स्थापित होने के बाद होगी। मुझे लगता है कि सबकुछ खींचा जाने से पहले ऐसा होता है, हालांकि यह वही नहीं हो सकता है जो आपको चाहिए।

+1

बिल्कुल सहमत हैं, http://blogs.msdn.com/b/mikehillberg/archive/2006/09/19/loadedvsinitialized.aspx देखें – Artru

1

क्या यह अंतर होता है जब कोई "लटका" होता है? हो सकता है कि आपको भारी तर्क को एक अलग धागे पर डालना होगा या बस बाध्यकारी वर्ग की IsAsync प्रॉपर्टी का उपयोग करना होगा। आप प्राथमिकता बाध्यकारी को भी देखना चाहते हैं। Here इसका उपयोग करने के तरीके पर एक बहुत अच्छा लेख है।

0

आप विंडो नियंत्रण के लिए OnContentRendered ओवरराइड कर सकते हैं।

7

लक्ष्य या जब स्रोत अपडेट किया जाता है तो आप अधिसूचित हो सकते हैं।

<TreeViewItem> 
    <TextBlock Name="NameText" 
     Text="{Binding Path=Name, Mode=OneWay, NotifyOnTargetUpdated=True}" 
     TargetUpdated="OnTargetUpdated"/> 
</TreeViewItem>