【发布时间】:2019-05-16 17:01:54
【问题描述】:
我在 Functions in x:Bind(在 Windows 10 内部版本 14393 中引入)和 IValueConverter 都致力于将转换后的值绑定到 UI 元素的属性。但是,我想知道绑定值的正确或有效程序。使用它们有什么区别。
示例:您可以使用 x:Bind 和 IValueConverter 中的两个函数将字符串绑定到“日历选择器”。但是,哪个效率更高?
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
}
}
【问题讨论】:
-
不,我不是在谈论 x:bind 或 binding 。我说的是函数绑定和转换器都使用 x:bind 检查链接
标签: uwp windows-10-universal uwp-xaml