2011-03-27 6 views
5

मैं सिल्वरलाइट 4 (एक्सएएमएल) में IsEnabled संपत्ति कैसे बांधूं?मैं सिल्वरलाइट 4 में ContextMenu की IsEnabled संपत्ति को कैसे बांधूं?

मैंने बस IsEnabled="{Binding ABC}" कोशिश की लेकिन यह काम नहीं कर रहा है - MenuItem हमेशा सक्षम है।

सुराग के लिए अग्रिम धन्यवाद!

चीयर्स

संपादित करें:

क्या दिलचस्प है, जब Mode=TwoWay की स्थापना बाइंडिंग काम करने के लिए लग रहे हैं। हालांकि, मेनू मेनू पर माउस को ले जाने के बाद संदर्भ मेनू का स्वरूप अपडेट किया गया है। क्या यह असीमित रूप से काम कर रहा है? राइट-क्लिक करने के बाद मेरे संदर्भ मेनू के लेआउट को अपडेट करने का तरीका क्या है? (मैं UpdateLayout() कोशिश करता हूं लेकिन यह काम नहीं करता)

+0

एबीसी क्या है, क्या यह दृश्य मॉडल में एक संपत्ति है या आप किसी और चीज से जुड़ने की कोशिश कर रहे हैं। यदि यह दृश्य मॉडल में है जहां आप एबीसी बदल रहे हैं और दृश्य को सूचित कर रहे हैं? –

+0

@ वेस, हां, यह वही है जो आपने लिखा है। – Jamie

उत्तर

6

ठीक है, यह सिल्वरलाइट टूलकिट में एक ज्ञात बग है - संदर्भ मेनू का स्वरूप बदलता नहीं है, भले ही IsEnabled संपत्ति बाध्य हो और सही ढंग से अधिसूचित हो। मुझे एक वर्कअराउंड लागू करना था (नियंत्रण के दृश्य को सरल बनाना)। वैसे भी, उत्तरों के लिए धन्यवाद :)

+0

मुझे एक ही समस्या है - आप नियंत्रण के दृश्य को कैसे अपडेट करते हैं? – Calanus

+2

ठीक है, contextMenu1.InvalidateArrange() संदर्भ मेनू की खुली घटना में काम किया – Calanus

1

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

क्या आपने अपना डेटा कॉन्टेक्स्ट उस ऑब्जेक्ट पर सेट किया है जिसमें सार्वजनिक संपत्ति ABC है?

+0

मैंने देखा, कि जब मैं मोड (दोवे) सेट करता हूं, बाध्यकारी काम करता प्रतीत होता है। हालांकि, मेनू आइटम का रूप बदलता नहीं है (जब तक मैं कर्सर को उस पर नहीं ले जाता)। आपके पास कोई विचार है? – Jamie

+0

क्या दृश्य मॉडल में संपत्ति एक निर्भरता संपत्ति है या क्या आप अपने दृश्य मॉडल में INOTifyProperty को लागू करते हैं? यानी क्या सक्षम है जब आप परिवर्तन को सूचित करते हैं? –

+0

मैंने INotifyPropertyChanged लागू किया। – Jamie

संबंधित मुद्दे