【问题标题】:Xamarin Forms Converter being called on page disappearing?Xamarin Forms Converter 在页面消失时被调用?
【发布时间】: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 属性设置一个断点,并在堆栈跟踪中查看它来自哪里。
  • 属性改变时总是调用转换器
  • 是的,但是当页面最初加载时应该调用转换器,但在我的情况下,当时没有调用转换器 - 很奇怪

标签: xamarin.forms converters


【解决方案1】:

哎呀!这是我的错。

我将转换器添加到 ListView 的 SelectedItemTemplate 而不是 ListView 的 ItemTemplate。这就是为什么转换器从未被调用的原因。现在都修好了。

【讨论】:

  • 太棒了!不要忘记接受您的回答,这将帮助更多的人:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-13
  • 2022-11-08
  • 2021-07-12
  • 1970-01-01
  • 2020-05-08
  • 2021-03-09
相关资源
最近更新 更多