Я работал над обеими функциями в x: Bind (который представлен в Windows 10 build 14393) и IValueConverter , чтобы связать преобразованные значения со свойством элемента пользовательского интерфейса.Но я хотел бы знать, какая процедура является правильной или эффективной для привязки ценностей.Какая разница в их использовании.
Пример: вы можете использовать обе функции в x: Bind и IValueConverter, чтобы связать строку с 'calendardatepicker'.Но какой из них эффективен?
1.Функции в x: Bind
// Xaml
<CalendarDatePicker Date="{x:Bind ConvertStringToDate(Date),Mode=OneWay}"></CalendarDatePicker>
// C #
public DateTimeOffset ConvertStringToDate(string date)
{
DateTime d;
d = System.Convert.ToDateTime(date);
d = DateTime.SpecifyKind(d, DateTimeKind.Local);
return (DateTimeOffset)d;
}
2. Использование IValueConverter
// Xaml
<CalendarDatePicker Date="{x:Bind Date,Converter={StaticResource StringtoDate},Mode=OneWay}"></CalendarDatePicker>
// C #
public class DateToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, string language)
{
DateTime d = DateTime.Now;
string date = (string)value;
d = System.Convert.ToDateTime(date);
d = DateTime.SpecifyKind(d, DateTimeKind.Local);
return (DateTimeOffset)d;
}
public object ConvertBack(object value, Type targetType,
object parameter, string language)
{
//blah blah
}
}