C# 在某些情况下无法调用IValueConverter
我使用的是从web服务获取的文本集合,这些文本应该用于各种控件 在我看来,最简单、最动态的方法是使用C# 在某些情况下无法调用IValueConverter,c#,windows-phone-7,xaml,ivalueconverter,C#,Windows Phone 7,Xaml,Ivalueconverter,我使用的是从web服务获取的文本集合,这些文本应该用于各种控件 在我看来,最简单、最动态的方法是使用IValueConverter获取给定文本,如下所示: public class StaticTextConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (param
IValueConverter
获取给定文本,如下所示:
public class StaticTextConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter != null && parameter is string)
{
return App.StaticTexts.Items.SingleOrDefault(t => t.Name.Equals(parameter)).Content;
}
return null;
}
}
然后在XAML中,我将文本的ID(“名称”)提供给转换器:
<phone:PhoneApplicationPage.Resources>
<Helpers:StaticTextConverter x:Name="TextConverter" />
</phone:PhoneApplicationPage.Resources>
<TextBlock Text="{Binding Converter={StaticResource TextConverter}, ConverterParameter=M62}" />
然后要更改某个控件的文本,所要做的就是更改参数中的ID或更改某个web界面中的文本本身
我的问题是
值转换器仅在设置了ItemSource
的某种DataTemplate
上下文中调用,就好像绑定
属性仅在那里起作用一样
每当我在其他任何地方使用此方法时,都不会调用值转换器
有人知道我可能做错了什么吗?为您的文本块设置DataContext=“object”
,其中转换器不工作,将调用值转换器
此解决方法将在您的场景中发挥作用。为转换器不工作且将调用值转换器的文本块设置DataContext=“object”
此解决方法将在您的场景中实现此目的。为绑定添加源 用那样的东西
Text="{Binding Converter={StaticResource LocalizedStringsConventer} ,ConverterParameter=Wrong, Source=NULL}"
为绑定添加源 用那样的东西
Text="{Binding Converter={StaticResource LocalizedStringsConventer} ,ConverterParameter=Wrong, Source=NULL}"
仅用于测试:在转换器不工作的文本块中设置DataContext=“x”,并查看是否调用了值转换器。还要检查输出窗口以获得绑定errors@michele如果您将此建议作为答案提交,我会将其设置为已解决:)仅用于测试:在转换器不工作的文本块中设置DataContext=“x”,并查看是否调用了值转换器。还要检查输出窗口以获得绑定errors@michele如果您将此建议作为答案提交,我会将其设置为已解决:)