2010-12-21 10 views
12

मैं एक मूल्य के साथ एक टूलटिप निर्धारित किया है के रूप में:WPF बाइंडिंग - StringFormat - प्रारूपित नहीं कर

Value="{Binding Path=DataItem.EquitySold, StringFormat=Reserved (Equity Share: \{0\}%)}" 

toolip के रूप में प्रदर्शित कर रहा है:

लेकिन मैं यह उम्मीद होने के लिए:

सुरक्षित (इक्विटी शेयर: 72%)

मेरे बाध्यकारी में क्या गलत है?

+0

मैं नहीं समझ सकता कैसे किया यह सब –

उत्तर

15

आप की कोशिश की है का प्रयास करें:

<ToolTip> 
    <TextBlock Text="{Binding Path=DataItem.EquitySold, StringFormat=Reserved (Equity Share: \{0\}%)}" /> 
</ToolTip> 
+0

उत्कृष्ट, धन्यवाद –

+1

वह मूल्य संपत्ति का उपयोग क्यों नहीं कर सका? –

+1

@ टॉमरडब्ल्यू: मिच बताते हैं कि उनके जवाब में क्यों। – decyclone

-1

StringFormat=Reserved (Equity Share: {0:P0}) 
+0

मुझे डर है कि यह किसी भी एडवेंचर्स नहीं किया हूँ पर संकलन XAML ce। –

+0

क्या आपने कोशिश की है? –

3

आप कोष्ठक से बचने के लिए की जरूरत नहीं है। इस (मैं एकल उद्धरण में प्रारूप डाल करने के लिए की तरह) का प्रयास करें:

Value="{Binding Path=DataItem.EquitySold, StringFormat='Reserved (Equity Share: {0}%)'}" 
+0

मुझे डर है कि इससे कोई फर्क नहीं पड़ता –

+3

टेक्स्ट को टेक्स्ट बदलें, और यह भी काम करेगा ... –

0

मुझे लगता है कि यह क्या अपने डेटा-प्रकार का समर्थन करता है - जहाँ तक मैं जानता हूँ कि यह IFormattable को तर्क के रूप में दिया जाता है।

42

एक टूलटिप एक सामग्री नियंत्रण है, जिसका अर्थ है कि इसमें वास्तव में डिस्प्ले मॉडल नहीं है। यह @deccyclone द्वारा पहले के जवाब में प्रदर्शित किया गया है जो सामग्री को टेक्स्टब्लॉक पर सेट करता है। चूंकि टेक्स्टबॉक्स को टेक्स्ट प्रदर्शित करने के लिए डिज़ाइन किया गया है, इसलिए स्ट्रिंगफॉर्मैट बाइंडिंग प्रॉपर्टी विज्ञापन के रूप में काम करती है। बटन इसका एक और उदाहरण है। (दोनों कंटेंट कंट्रोल से प्राप्त होते हैं)

यदि आप एक स्ट्रिंग पर टूलटिप की सामग्री सेट करते हैं, तो स्ट्रिंग प्रदर्शित होती है क्योंकि टूलटाइप कनवर्टर में बनाया गया है यदि डेटा टाइप स्ट्रिंग है। यदि आप स्ट्रिंग कनवर्टर में निर्मित उस का लाभ लेना चाहते हैं, तो आपको ContentStringFormat प्रॉपर्टी का उपयोग करके प्रारूप सेट करने की आवश्यकता है।

<ToolTip 
    Content="{Binding Path=Value}" 
    ContentStringFormat="{}{0:F2} M" 
/> 

Btw, जब StringFormat या ContentStringFormat का उपयोग करने के लिए टिप बंद प्रदर्शित पाठ की स्थापना के लिए जो संपत्ति नियंत्रण की आपूर्ति कर रहा है। पाठ संपत्ति -> उपयोग StringFormat सामग्री संपत्ति -> उपयोग ContentStringFormat

+2

शीर्षलेख संपत्ति -> हेडरस्ट्रिंगफॉर्मैट :) धन्यवाद! विवरण के लिए – surfen

+0

+1। – decyclone

+0

आपके ContentStringFormat में पहले सूचीबद्ध क्यों खुला और बंद घुंघराले ब्रैकेट हैं? – ClearCloud8

0
<Button.ToolTip> 
<TextBlock Text="{Binding Path=ToggleText, StringFormat={}{0} Text}"/> 
</Button.ToolTip> 

DataGridTemplateColumn

0

अंदर बटन किसी और कि एक अलग स्थिति यह Style के माध्यम से एक टूलटिप StringFormat स्थापित करने के लिए वांछित था में यहाँ हवाओं के लिए :

<DataGridTextColumn Header="Amount" CanUserSort="True" 
            Binding="{Binding Amount,Mode=OneWay}"> 
    <DataGridTextColumn.CellStyle> 
     <Style TargetType="DataGridCell"> 
      <Setter Property="ToolTip"> 
       <Setter.Value> 
        <TextBlock Text="{Binding JournalEntryId, StringFormat='Reserved (Equity Share: \{0\}%)'}" /> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </DataGridTextColumn.CellStyle> 
</DataGridTextColumn> 
संबंधित मुद्दे