在我开发的Xamarin.Forms项目中,我创建了一个与DateTime一起使用的NullableDatePicker。值。在XF 3.3之前,DatePicker能够设置DateTime? ViewModel的属性设置为null。这不再适用于XF 3.5现在,当我的platformrenderer将XF控件的BindableProperty设置为null时,视图模型的bound属性不会更新。将值更改为DateTime即可。
在搜索XF 3.3和当前XF 3.5之间的变化时,对于绑定到光并没有带来任何重大变化,我希望这里对stackoverflow有所帮助的人。我已经搜索了很多问题的可能原因。
public class ViewModel {
private DateTime? _date;
public DateTime? Date{
get => _date;
set => SetProperty(ref _date, value);
}
}
NullableDatePicker : DatePicker {
public static readonly BindableProperty NullableDateProperty = BindableProperty.Create(nameof(NullableDate), typeof(DateTime?), typeof(NullableDatePicker), null, BindingMode.TwoWay);
public class DateTime? NullableDate
{
get { return (DateTime?)GetValue(NullableDateProperty); }
set { SetValue(NullableDateProperty, value); }
}
}
public class NullableDatePickerRenderer : DatePickerRenderer
{
...
public void OnClearDateTimeSelection(){
((IElementController) Element).SetValueFromRenderer(NullableDatePicker.NullableDateProperty, null);
...
}
}
答案 0 :(得分:0)
从3.4.0.1008975更新到3.5.X时,我遇到了同样的问题。我还没有找到原因,但是我也不需要更新,这就是我向您推荐的。
版本3.5.X基本上将可绑定的布局添加到XF。如果您不需要它,我建议您将其降级为3.4.0.1008975,以确保它可以正常工作。