繁体   English   中英

为什么DatePicker的Text属性仍然包含值?

[英]Why Text property of a DatePicker still contains value?

我正在构建一个WPF / C#应用程序,我使用此构造引用了几个DatePicker-s:

for(int i = 0; i < n; i += 1)
{
    DatePicker dp = (DatePicker)this.FindName(Constants.DP_PRODUCT_PREFIX + (i + 1));
    dp.SelectedDate = new DateTime(2017, 12, 31);
    dp.IsEnabled = true;
    dp.Opacity = 1;
    dp.Text = "";
 }

但是即使我设置

dp.Text = "",

DatePickers仍在2017年12月31日显示其文本字段。

注意:我希望将DatePicker设置为我选择的默认值,在这种情况下为31.12.2017

我做错了什么? 可能是我运行这段代码的时间,它不应用更改吗?

您可以在DatePicker模板(显示SelectedDate值)中找到DatePickerTextBox来分配新值。Template中DatePickerTextBox的默认名称为“ PART_TextBox”,因此您可以从Template中找到它

dp.Loaded += (ee, ss) =>
        {
            var template = dp.Template;
            var t = template.FindName("PART_TextBox", dp) as DatePickerTextBox;
            if (t != null)
                t.Text = "";
        };

将代码放入Loaded事件中,以确保DatePickerTextBox不为null。您还可以通过右键单击控件然后选择编辑样式来查看DatePicker模板。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM