Xaml 调用OnPropertyChanged后转换器不工作

Xaml 调用OnPropertyChanged后转换器不工作,xaml,windows-phone,windows-phone-8.1,ivalueconverter,Xaml,Windows Phone,Windows Phone 8.1,Ivalueconverter,我一直在努力使这项工作有一段时间没有成功。 我有一个转换器,可以在页面上漂亮地打印日期。转换函数如下所示 class DateConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { Nullable<int> _date = value as Nullable<in

我一直在努力使这项工作有一段时间没有成功。 我有一个转换器,可以在页面上漂亮地打印日期。转换函数如下所示

class DateConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        Nullable<int> _date = value as Nullable<int>;

        if (!_date.HasValue)
            return DependencyProperty.UnsetValue;

        if (!String.IsNullOrEmpty(parameter as String))
        {
            if (parameter.Equals("EDITED"))
                return "edited " + UtilityFunctions.formatUnixTime(_date.Value);
        }

        return UtilityFunctions.formatUnixTime(_date.Value);
    }
}
在XAML部分中,我通过将属性的属性传递给转换器来使用该转换器

<TextBlock Text="{Binding Wiki.EditDate, Converter={StaticResource DateConverter}, ConverterParameter=EDITED}" />
我的ModelView扩展了BindableBase,每当我更新Wiki属性时,我都会调用SetProperty,而SetProperty反过来会调用OnPropertyChanged for Wiki属性

如果我尝试在没有转换器的情况下显示日期,则效果很好

<TextBlock Text="{Binding Wiki.EditDate}" />
我正在我的项目的其他部分使用这个转换器,所以我相信这不是问题的原因

这个问题的原因可能是什么


感谢您的帮助…

讨论和调试结果表明-问题是传递给转换器的值错误-2014-06-03 00:56:21

此值不能转换为int,因为您使用的是as:

可空_date=值为可空; 不会抛出异常。使用null代替exception,因为它不会抛出InvalidCastException。 如果要使用cast:

可空_date=可空值;
那你就有例外了。您肯定会在SO-上找到更多信息。

您是否尝试过调试和检查发生了什么?您是否使用键DateConverter定义了资源?调试时您是否查看了输出窗口?是否有任何异常?@Romasz是的,我已调试转换器,_date的值为空。输出控制台中没有绑定错误。资源也已定义,我目前正在另一个页面上使用此转换器。不同之处在于,在本页中,我使用异步方法从web API加载值。因此,当页面打开时,值还没有设置。这意味着转换器中的断点被命中,对吗?你能检查一下什么是价值而不是数据的价值吗?@Romasz谢谢你的反馈。该值的格式为2014-06-03 00:56:21,不是整数,因此转换为Nullable失败。现在的问题是为什么转换没有抛出异常?顺便问一下,你能把这个写下来作为一个答案并解释一下吗?这样我就可以把它标记为答案了。谢谢你的帮助。在回答中,我已经解释了Convercrision为什么不抛出扩展。