2010-08-03 11 views
6

हमारे पास एक बहुत बड़ी परियोजना है। विजुअल स्टूडियो डीबग आउटपुट लॉग में कई बार दोहराए जाने वाले WPF बाध्यकारी त्रुटियां हैं। उदाहरण के लिए:
डब्ल्यूपीएफ बाध्यकारी त्रुटियों का शिकार कैसे करें?

System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='NaN' BindingExpression:Path=Width; DataItem='ContentPresenter' (Name=''); target element is 'ContentPresenter' (Name=''); target property is 'MaxWidth' (type 'Double')

लाइनों मुद्रित कर रहे हैं जब कुछ कार्रवाई की जाती है। हालांकि, यह एक बहुत ही भारी ऑपरेशन है, जिसमें डब्ल्यूपीएफ कक्षाएं शामिल हैं।

क्या बाध्यकारी त्रुटि के सटीक स्रोत को खोजने का कोई त्वरित तरीका है? कुछ उपकरण जो मदद कर सकते हैं?

उत्तर

5

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

तो, मैं उस नियंत्रण पर बाध्यकारी की तलाश कर रहा हूं जहां आप MaxWidth="{Binding Width, ElementName=someElement}", या इसी तरह की सेटिंग स्थापित कर रहे हैं।

एक अनुमान से कम, कि बाध्यकारी स्थान पर रखा गया है, क्योंकि एक नियंत्रण एक StackPanel कि अपने बच्चों के आकार विवश नहीं करता है की तरह एक लेआउट पैनल के भीतर निहित है, और किसी MaxWidth बाध्य करने के लिए कतरन मुद्दों से निपटने की कोशिश की है। एक बेहतर समाधान एक पैनल नियंत्रण में बदलना है जो इसके सामग्री आकार को बाधित करता है।

ऑपरेशन जो किया जा रहा है, इस मामले में त्रुटि के साथ कुछ भी करने की संभावना नहीं है, सिवाय इसके कि यह आपके लेआउट को अमान्य कर रहा है।

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