2017-02-10 3 views
0

Как установить преобразователь для статический ресурс? Следующий пример показывает мою проблему - я хотел бы преобразовать текст TextBlock в верхний регистр.XAML и конвертер для статического ресурса

<UserControl x:Class="CoRiMaCorporate.HomeScreen.Controls.Home.ConfigurationControl" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mainResources="clr-namespace:MainSharedResources;assembly=MainSharedResources" 
      xmlns:converters="clr-namespace:CommonClientLibrary.Converters;assembly=CommonClientLibrary" /> 
<UserControl.Resource> 
    <converters:StringToUpperCaseStringConverter x:Key="stringToUpperCaseStringConverter" /> 
</UserControl.Resource> 
<Grid> 
    … 
    <TextBlock Text="{x:Static mainResources:Lang.Applications}" /> 
    … 
</Grid> 

Я искал что-то вроде этого:

<TextBlock Text="{Binding Converter=stringToUpperCaseStringConverter, ConverterParameter={x:Static mainResources:Lang.Applications}}" /> 
+0

Как насчет '{Binding {х: Static mainResources: Lang .Applications}, Converter = stringToUpperCaseStringConverter} ' –

+0

@MikeEason К сожалению - ожидаемый тип - это« PropertyPath », фактический тип -« строка ». – David

ответ

3

статическое свойство переходит к связыванию Source, конвертер предоставленный StaticResource

<TextBlock Text="{Binding Converter={StaticResource stringToUpperCaseStringConverter}, 
          Source={x:Static mainResources:Lang.Applications}}" />