【发布时间】:2020-05-14 04:25:50
【问题描述】:
<Label Grid.Row="0" Grid.Column="1"
Text="{Binding Date, Converter={StaticResource localTimeConverter}, StringFormat='{0:MMMM dd, yyyy}'}"
LineBreakMode="NoWrap"
FontSize="16"
Style="{DynamicResource FieldLabel}"/>
我有上面的 Xaml 和下面的转换器:
public class UtcToLocalDateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((DateTime)value).ToLocalTime();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
但是,当页面启动时不会调用转换器,而是在离开页面时调用它。我在 convert 方法中添加了一个断点,那是调用该方法的时间。这很混乱!?
请问有人可以提供帮助吗?
【问题讨论】:
-
只要绑定的值发生变化,就会调用转换器。为 Date 属性设置一个断点,并在堆栈跟踪中查看它来自哪里。
-
属性改变时总是调用转换器
-
是的,但是当页面最初加载时应该调用转换器,但在我的情况下,当时没有调用转换器 - 很奇怪