Вы правы, это не обязательно должно быть свойство, хотя без RaisingProperty пользовательский интерфейс не будет знать об изменении. Но проблема с конвертером, а не с этим.
я есть класс модели в общем PCL (для приложений Android и UWP), которые содержат свойство datetime:
public class Meter {
public int meter_value {get; set; }
public DateTime meter_start { get; set; }
public DateTime meter_end { get; set; }
... other int and string properties
}
В MainPage.cs у меня есть
public Meter _meter;
public MainPage()
{
this.InitializeComponent();
_meter = new Meter();
}
Я пытаюсь связать это с элементами управления xaml с помощью следующего кода:
<TextBox
Text="{x:Bind _meter.meter_value, Mode=TwoWay}">
<CalendarDatePicker
Name="meter_start"
Date="{x:Bind _meter.meter_start, Mode=TwoWay}"
DateFormat="{}{day.integer}/{month.integer}/{year.full}" >
</CalendarDatePicker>
Этот код производит ошибку времени компиляции:Invalid binding path '_meter.meter_start' : Cannot bind type 'System.DateTime' to 'System.Nullable(System.DateTimeOffset)' without a converter
Когда я изменяю x: Bind to Binding, приложение компилируется, но значение свойства meter_start в моей модели равно 0001/01/01.
Может кто-нибудь помочь мне, как решить эту проблему?