2014-06-09 13 views
15

मैं आबद्ध डेटा के साथ कुछ पाठ प्रदर्शित करने के लिए कोशिश कर रहा हूँ, उदाहरण के लिए, मैं कोड है:विंडोज फोन 8.1 XAML StringFormat

<TextBlock Text="{Binding Shorthand}" Style="{ThemeResource ListViewItemTextBlockStyle}" /> 

मैं 'आशुलिपि' से पहले कुछ पाठ जोड़ना चाहते हैं, मैं क्या है से पढ़ें इस StringFormat बाध्यकारी, की तर्ज पर कुछ की एक संपत्ति के रूप में उपयोग करके संभव होगा:

<TextBlock Text="{Binding Path=Shorthand, StringFormat={0} text I want to add}" Style="{ThemeResource ListViewItemTextBlockStyle}" /> 

हालांकि इस काम करने के लिए नहीं लगता है, यह नहीं रह गया है जिस तरह से 8.1 में काम करने के लिए है?

+0

"काम करने के लिए प्रतीत नहीं होते" नैदानिक ​​के ज्यादा नहीं है। –

+0

तुम्हारी याद आ रही नहीं कर रहे हैं 'StringFormat में =' {0} मैं जोड़ना चाहते हैं पाठ '? –

+1

त्रुटि मैं हो रही थी था: – blawford

उत्तर

30

StringFormat WinRT पर समर्थित नहीं है।

public class StringFormatConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     return string.Format(parameter as string, value); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, string language) 
    { 
     return null; 
    } 
} 

फिर अपने पृष्ठ स्रोत यह घोषणा: अपने बाइंडिंग में

<Page.Resources> 
    <local:StringFormatConverter x:Name="StringFormat"/> 
</Page.Resources> 

और का उपयोग यह:

<TextBlock Text="{Binding Path=SomeText, Converter={StaticResource ResourceKey=StringFormat}, ConverterParameter='Hello {0}'}" /> 
16

की तरह हालांकि, आप आसानी से इसे एक कस्टम कनवर्टर बनाने के द्वारा जगह ले सकता है @KooKiz पल में StringFormat ने बताया समर्थित नहीं है, लेकिन आप एक ही प्रभाव हासिल कर बस इनलाइन में अपने लाइनों को तोड़ते एक कनवर्टर की तरह बिना रन

<TextBlock> 
    <Run Text="Hey I wanted to put this text in front of "/> 
    <Run Text="{Binding Path=Shorthand}"/> 
    <Run Text=" and I also wanted some text after it. Neato.."/> 
</TextBlock> 

उम्मीद है कि यह मदद करता है, चीयर्स।

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