2010-07-27 6 views
80

मैंबहु-बाध्यकारी में 1 बाध्यकारी के लिए निरंतर मान कैसे पास कर सकता हूं?

<TextBlock> 
    <TextBlock.Text> 
     <MultiBinding Converter="{StaticResource myConverter}"> 
      <Binding Path="myFirst.Value" /> 
      <Binding Path="mySecond.Value" /> 
     </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

की तरह एक बहु बाध्यकारी है और मैं एक निश्चित मूल्य उदा पास करना चाहते हैं उपरोक्त दो बाइंडिंग में से एक को "123"। मैं XAML का उपयोग करके ऐसा कैसे कर सकता हूं?

+1

किसी भी कोड के टुकड़े/उदाहरण कृपया? – Torsten

+0

मुझे लगता है कि प्रश्न का कुछ हिस्सा गायब है, आप उपरोक्त बाध्यकारी करने के लिए प्रतिक्रिया दे रहे हैं लेकिन मुझे प्रश्न में कोई बाध्यकारी कोड नहीं दिख रहा है। – akjoshi

+0

किसी भी तरह जब भी मेरा कोई प्रश्न होता है तो पहले किसी के पास बिल्कुल वही प्रश्न था :) बढ़िया! –

उत्तर

116

यदि आपका मान केवल string है, तो आप इसे बाध्यकारी की Source संपत्ति में स्थिर के रूप में निर्दिष्ट कर सकते हैं। यदि यह कोई अन्य आदिम डेटा प्रकार है, तो आपको एक स्थिर संसाधन को परिभाषित करने और इसका संदर्भ देने की आवश्यकता है।

mscorlib में System को इंगित करने के XAML की जड़ में sys नाम स्थान को परिभाषित करें, और निम्न काम करना चाहिए:

<TextBlock> 
    <TextBlock.Resources> 
    <sys:Int32 x:Key="fixedValue">123</sys:Int32> 
    </TextBlock.Resources> 
    <TextBlock.Text> 
    <MultiBinding Converter="{StaticResource myConverter}"> 
     <Binding Path="myFirst.Value" /> 
     <Binding Source="{StaticResource fixedValue}" /> 
    </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 
+2

मुझे मल्टीबाइंडिंग नहीं मिलती है। स्रोत मान्य के रूप में ... – tofutim

+1

@tofutim ऐसा इसलिए है क्योंकि मल्टीबाइंडिंग नहीं है प्रतीत होता है संसाधन। टेक्स्टब्लॉक का उपयोग करें। इसके बजाय स्रोत ... –

+2

शायद आपको अपने समाधान में xmlns: sys = "clr-namespace: system; assembly = mscorlib" जोड़ना चाहिए ;-) – c0d3b34n

19

मैं काफी सवाल का पालन नहीं करते लेकिन वहाँ दो विकल्प हैं:

अपनी मल्टीबाइंडिंग में <Binding Source="123" /> लाइन को अपने कनवर्टर के लिए सीमाबद्ध मान के रूप में 123 पास कर देगा।

अपने MultiBinding में ConverterParameter="123" रखो:

<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">

+0

<बाध्यकारी स्रोत = "123" /> निर्भरता प्रतीत होता है निर्भरता। UnsetValue –

+0

आपको "बहुत अच्छा" :) –

81

या, ऊपर दो जवाब के संयोजन:

<MultiBinding Converter="{StaticResource ScalingConverter}"> 
    <Binding> 
     <Binding.Source> 
      <sys:Double>0.5</sys:Double> 
     </Binding.Source> 
    </Binding> 
    <Binding ElementName="TC" Path="ActualWidth" /> 
</MultiBinding> 

कौन सा संसाधन kludge बिना सही प्रकार प्रदान करता है।

2

मैं इस विशेष रूप से अच्छा जवाब यह नहीं कह रहा हूँ, लेकिन यहाँ एक और तरीका है:

<Binding Path="DoesNotExist" FallbackValue="123" /> 
संबंधित मुद्दे

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