2014-06-09 18 views
15

Próbuję wyświetlić jakiś tekst wraz z danymi zbindowanych, na przykład, mam kod:Windows Phone 8.1 XAML StringFormat

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

chcę dodać jakiś tekst przed „skrótowym”, z tego co mam czytaj byłoby to możliwe przy użyciu StringFormat jako właściwość wiązania, coś wzdłuż linii:

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

jednak to nie wydają się działać, to nie jest to już droga do robienia rzeczy w 8.1?

+0

"Nie wydaje się działać" to niewiele z diagnostyki. –

+0

czy nie brakuje tekstu "in StringFormat =" {0}, który chcę dodać "? –

+1

Wystąpił błąd: "Właściwość" StringFormat "nie została znaleziona w polu" Wiązanie ". – blawford

Odpowiedz

30

StringFormat nie jest obsługiwany w WinRT. Jednakże, można łatwo zastąpić go przez utworzenie niestandardowego Przelicznik:

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; 
    } 
} 

Następnie zadeklarować to w twoich zasobów strony:

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

i używać go w swoich powiązań:

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

odczuwalna @KooKiz zwrócił uwagę, że StringFormat w tej chwili nie jest obsługiwany, ale można osiągnąć ten sam efekt, po prostu przerywając swoje linie w wiersze inline bez takiego konwertera;

<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> 

Mam nadzieję, że to pomaga, okrzyki.

Powiązane problemy