Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在某些情况下无法调用IValueConverter_C#_Windows Phone 7_Xaml_Ivalueconverter - Fatal编程技术网

C# 在某些情况下无法调用IValueConverter

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

我使用的是从web服务获取的文本集合,这些文本应该用于各种控件

在我看来,最简单、最动态的方法是使用
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如果您将此建议作为答案提交,我会将其设置为已解决:)