的IValueConverter没有得到调用在某些情况下(IValueConverter not g

2019-10-17 03:12发布

我使用从一个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界面更改。

我的问题是

该值只转换器被调用时,在某种DataTemplate文意ItemSource已定,就好像Binding属性只在那里工作。

每当我用这个方法在其他地方,值转换器根本不被调用。

有没有人有什么我可能是做错了的想法?

Answer 1:

设置DataContext="object"为您的TextBlocks其中convertet不工作和值转换器将被调用。

此变通办法将这样的伎俩在您的方案。



Answer 2:

添加源对于结合

使用类似的东西

Text="{Binding  Converter={StaticResource LocalizedStringsConventer} ,ConverterParameter=Wrong, Source=NULL}"


文章来源: IValueConverter not getting invoked in some scenarios