Xaml में मूल्य-बाध्यकारी वाक्यविन्यास क्या है?

मैं डब्ल्यूपीएफ में बाध्यकारी के बारे में सब कुछ सीख रहा हूँ। मुझे अपने xaml में पार्स त्रुटियों को डीबग करने में बहुत परेशानी हो रही है, हालांकि। क्या कोई सुंदर हो सकता है कृपया मुझे बताएं कि इस छोटे टुकड़े में क्या गलत है? :



    
        <thumb Name="ThumbKnob" Height="{Binding ElementName=Part_Track, Path=Height, Mode=OneWay}" />
    

यह डेटाबेस है जो टूटता है। मुझे ThumbKnob.Height के लिए एक InvalidAttributeValue अपवाद मिलता है जब मैं इसे चलाने का प्रयास करता हूं। मुझे पता है कि मुझे कुछ मौलिक याद आना चाहिए। तो मुझे भरें, स्टैकर, और मेरा आभार असीमित होगा।


ElementName को बदलने से मदद नहीं मिली। मुझे कुछ और चाहिए जो मुझे नहीं मिल रहा है।

मुझे जिक्र करना चाहिए कि मैं सिल्वरलाइट में इसका परीक्षण कर रहा हूं। इंटरनेट एक्सप्लोरर से बाहर निकलने वाला सटीक संदेश यह है:

XamlParseException: संपत्ति ऊंचाई के लिए अमान्य विशेषता मान।

यह पूरी बात एक नियंत्रण टेम्पलेट के अंदर है। मैं खुद को अवधारणाओं को सिखाने के लिए एक स्लाइडर नियंत्रण बना रहा हूं।

0
ro fr bn

8 उत्तर

ठीक है, यह सौदा है:

चांदी की रोशनी में, आप एक यूआई तत्व से दूसरे रूप में मूल्यों को बाध्य नहीं कर सकते हैं। जो कुछ मैं करने की कोशिश कर रहा था वह करने का एकमात्र तरीका सी # कोड में होगा।

मेरे पास कल इसके लिए एक संदर्भ था, लेकिन अब मुझे लगता है कि आपको इसके लिए अपना शब्द लेना होगा :)

0
जोड़ा

सबसे पहले यह आवरण का मामला है ...

परिवर्तन

Part_Track
to
PART_Track
which will fix your binding error..

लेकिन मुझे नहीं लगता कि यह वही है जो आप करने की कोशिश कर रहे हैं ..

आप कैनवास के बजाय ग्रिड का उपयोग कर सकते हैं, और थंब स्वचालित रूप से आकार देगा। कैनवास में वास्तव में ऊंचाई नहीं है, क्योंकि यह वास्तव में अपने बच्चों की ऊंचाई की परवाह नहीं करता है ...

उम्मीद है की यह मदद करेगा...

0
जोड़ा

एक टेम्पलेट बीटीडब्ल्यू में सीमा है?

चूंकि सीमा टेम्पलेट में स्थित नहीं है, तो टेम्पलेट बाइंडिंग की आवश्यकता नहीं है (या तो कंट्रोल टेम्पलेट या डेटा टेम्पलेट)

0
जोड़ा

डाटाबेसिंग को डीबग करने के लिए मैं आमतौर पर क्या करता हूं, एक कनवर्टर जोड़ता है जहां मैं वीएस.NET में ब्रेकपॉइंट सेट कर सकता हूं ..

तो बाध्यकारी कुछ ऐसा होगा:

{Binding ElementName=PART_Track, Path=Height, Mode=OneWay, Converter={StaticResources DebugConverter}}

फिर कनवर्टर एक IValueConverter का एक खाली कार्यान्वयन हो सकता है, कनवर्ट विधि में ब्रेकपॉइंट सेट करें और देखें कि ऊंचाई क्या सेट हो रही है ...

अपने कनवर्टर को अपने संसाधनों में जोड़ना न भूलें ...

शायद मूल्य NaN है?

0
जोड़ा

हम्म इस बिंदु पर डब्ल्यूपीएफ एन सिल्वरलाइट के बीच एक बड़ा अंतर हो सकता है ..

मुझे लगता है कि इस नमूना को एक wpf विंडो में संकलित करने और चलाने में कोई परेशानी नहीं है:


    
        
            

                
                    <thumb Name="ThumbKnob" Height="{Binding ElementName=PART_Track, Path=Height, Mode=OneWay}" />
                
            
        
    

शायद सिल्वरलाइट में थंब क्लास में कम गुण हैं ...

http://msdn.microsoft.com/ en-us/पुस्तकालय/system.windows.controls.primitives.thumb.aspx

0
जोड़ा

हम्म नाह :)

ऐसा प्रतीत नहीं होता है:

http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-5-using-the-listbox-and-databinding-to-display-list-data.aspx

0
जोड़ा

बाध्यकारी पर ElementName प्रॉपर्टी Silverlight में समर्थित नहीं है।

आप नोटिस करेंगे, अगर आप क्लास एक्सप्लोरर में बाइंडिंग ऑब्जेक्ट के पीछे कोड में जाते हैं या निरीक्षण करते हैं, तो इसमें एलिमेंटनाम नाम की एक संपत्ति नहीं है।

0
जोड़ा
बस ध्यान दें: यह सिल्वरलाइट 4 में है (और 3.5, मुझे लगता है)
जोड़ा लेखक MojoFilter, स्रोत

सिल्वरलाइट 3 में अब एलिमेंटनाम बाइंडिंग शामिल है ...

0
जोड़ा