- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 CalendarDatePicker
<CalendarDatePicker x:Name="DatePick" DisplayMode="Decade" Date="{Binding DisplayValue, Mode=TwoWay}"/>
问题是当我绑定(bind)日期属性时,选择器不再显示默认的占位符文本(选择一个日期),而是现在如果属性为 null(属性始终设置为 null)则显示 01.01.1916。
public DateTimeOffset? DisplayValue {get;set;}
如果我手动将 null 作为 Date 的值,它现在会再次显示 PlaceholderText。
DatePick.Date=null;
并且绑定(bind)仍然有效/我在选择日期时得到了所需的值。那么是否可以在不使用代码隐藏的情况下显示占位符文本?
最佳答案
似乎日历日期选择器的“最小值”总是当前年份减去 100,我已将您的代码修改为:
public class CalendarDatePickerEx : CalendarDatePicker
{
public DateTimeOffset? DefaultValue { get; set; }
public static readonly DependencyProperty DefaultValueProperty =
DependencyProperty.Register("DefaultValue", typeof(DateTimeOffset), typeof(CalendarDatePickerEx), new PropertyMetadata(null, (sender, e) =>
{
if ((DateTimeOffset?)e.NewValue != null && ((CalendarDatePickerEx)sender).Date.Value.Date.Year == DateTime.Today.Year - 100)
{
((CalendarDatePickerEx)sender).SetDisplayDate((DateTimeOffset)e.NewValue);
((CalendarDatePickerEx)sender).Date = null;
}
else if ((DateTimeOffset?)e.NewValue == null && ((CalendarDatePickerEx)sender).Date.Value.Date.Year == DateTime.Today.Year - 100)
{
{
((CalendarDatePickerEx)sender).SetDisplayDate(DateTimeOffset.Now);
((CalendarDatePickerEx)sender).Date = null;
}
}
}));
}
如果您使用 x:Bind 而不是 Binding,则一切都按预期工作,并且如果绑定(bind)日期值为 null,您可以看到占位符。
直接在 XAML 页面中:
<CalendarDatePicker Date="{x:Bind DataContext.DisplayValue, Mode=TwoWay}"/>
或在 DataTemplate 中:
<DataTemplate x:Key="DateFieldItemTemplate"
x:DataType="DataModel:ObjectTypeWithDate">
<Grid>
<CalendarDatePicker Date="{x:Bind DateField, Mode=TwoWay}"/>
</Grid>
</DataTemplate>
关于c# - CalendarDatePicker 绑定(bind)空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39775527/
我在我的 ViewModel 中使用绑定(bind)到属性的 CalendarDatePicker 和绑定(bind)到方法的 Closed 事件。 LoadPage 方法使用 SelectedDat
我试图弄清楚如何让当前选定的日期显示在 CalendarDatePicker 上。 例如如果我选择 2016 年 9 月 13 日作为所选日期,则应在我选择该日期的 CalendarDatePicke
我正在使用 CalendarDatePicker 问题是当我绑定(bind)日期属性时,选择器不再显示默认的占位符文本(选择一个日期),而是现在如果属性为 null(属性始终设置为 null)则显示
我有一个带有 CalendarDatePicker 的 UWP 应用程序。当我在日历中单击时,我会调用 WebService,它会给我一个“有效日期”列表。我需要使用此“有效日期”列表限制日历,以便唯
我需要在 UWP 中更改 CalendarDatePicker 中 Segoe MDL2 Assets 字体的颜色,使其看起来像这样(蓝色图标): 我查看了我的应用程序的动态树,我相信我需要在 Cal
我正在尝试绑定(bind) 的 Date 属性日历日期选择器 在 Windows 10 通用应用程序中使用 DateTime 属性: View 初始化时出现以下异常: An exception of
UWP 应用非常简单。具有由包含 CalendarDatePicker 的页面绑定(bind)的属性的 ViewModel。 查看模型: public class MainPageViewModel
我有一个 C++/CX UWP 项目,希望用户从我使用 Windows.UI.Xaml.Controls 创建的 CalendarDatePicker 中选择一个日期。但是,在初始化时,我希望将 Ca
我在包含 datetime 属性的共享 PCL(适用于 android 和 uwp 应用程序)中有模型类: public class Meter { public int meter_
在我的 Windows 10 通用应用程序中,我使用 CalendarDatePicker 来选择日期: 在 Code behind 中,我使用以下代码将日期存储到 SQLite 数据库中: boo
这可能很愚蠢,因为我只是在学习 UWP 并想我会尝试制作一个使用 CalendarDatePicker 的工具,但是我无法让它显示在框中输入的日期。 XAML C++ void OrderServ
我是一名优秀的程序员,十分优秀!