2009-12-07 16 views
8

एक भी बंधन के लिए, हम का उपयोग करें:एकाधिक बाइंडिंग के साथ स्ट्रिंगफॉर्मैट का उपयोग करके मल्टीबाइंडिंग के लिए छोटा xaml वाक्यविन्यास क्या है?

<TextBlock> 
    <TextBlock.Text> 
    <MultiBinding StringFormat="{}{0}"> 
     <Binding Path=EmployeeName/> 
    </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

या एक छोटी वाक्य रचना:

<TextBlock 
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding Path=EmployeeName}}"/> 

अब, अगर आप multibinding है:

<TextBlock> 
    <TextBlock.Text> 
    <MultiBinding StringFormat="{}{0}, {2}"> 
     <Binding Path="EmployeeName"/> 
     <Binding Path="Age"/> 
    </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

मैं सोच रहा था, क्या होगा इसका छोटा वाक्यविन्यास?

<TextBlock 
Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/> 

उत्तर

5

MSDN के अनुसार, अपने दूसरे उदाहरण ("कम एक भी बाध्यकारी साथ MultiBinding का उपयोग कर वाक्य रचना") काम नहीं करना चाहिए, .net 3.5 में है और न ही .net 4.0 में न:

नोट:

मल्टीबाइंडिंग और प्राथमिकता बाइंडिंग XAML एक्सटेंशन सिंटैक्स का समर्थन नहीं करती है (उसी बाइंडिंगबेस क्लास को साझा करने के बावजूद, जो वास्तव में बाध्यकारी के लिए XAML व्यवहार लागू करता है)।

तो, यदि यह आपके लिए काम करता है, तो यह दुर्घटनाग्रस्त है, और यह व्यवहार का समर्थन नहीं करता है।


पुनश्च: आप एक एकल बंधन के लिए MultiBinding उपयोग करने की आवश्यकता नहीं है। निम्नलिखित पर्याप्त होना चाहिए:

<TextBlock> 
    <TextBlock.Text> 
     <Binding Path="EmployeeName" /> 
    </TextBlock.Text> 
</TextBlock> 

या

<TextBlock Text="{Binding Path=EmployeeName}"/> 

या भी कम

<TextBlock Text="{Binding EmployeeName}"/> 
+0

हाँ, यह एक गैर अपेक्षित व्यवहार हो सकता है। प्रस्तुत किए गए छोटे वाक्यविन्यास को विजुअल स्टूडियो 2008 द्वारा उत्पन्न किया गया था जब एक WPF तत्व चिपकाया गया था। चूंकि मैंने इसे कोड नहीं किया है, इसलिए मैं सोच रहा था कि एकाधिक बाध्यकारी पथों के लिए यह छोटा संस्करण करना संभव था। धन्यवाद हेनजी! –

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

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