我来自一个文本框,并引入了一个带有日历和时间选择器的弹出窗口,这导致日期时间选择器完美运行。既然如此,我有一个要求,如果我们需要在日期时间选择器中显示无效文本(除了日期时间),我们应该能够在加载时执行它,就像数据库中出现无效的内容一样,我们应该能够显示它。
但是如果用户试图输入无效值,他应该被限制这样做。
我们如何实现相同,因为我已将文本框的text属性绑定到视图模型的属性。我还将处理textchanged事件。一旦数据
我也好,取消操作。
我想过使用一个标志,但使用OK / Cancel让我陷入两难境地,即设置/重新设置标志!
或者绑定中的模式会有帮助吗?
感谢任何帮助。提前致谢。
答案 0 :(得分:1)
您可以将Binding.UpdateSourceTrigger
值更改为LostFocus
,这样您的数据绑定文字属性只会在用户点击OK
Button
时看到更改。您应该能够以这种方式“拒绝”物业中的传入价值:
public string Text
{
get { return text; }
set
{
DateTime date;
if (!DateTime.TryParse(value, out date)) // Use whatever condition you like
{
text = value;
}
else text = string.Empty;
}
}
当Focus
丢失时,这也会清除UI控件中的无效值。但是,如果使用LostFocus
不适合您,您还可以将Binding.UpdateSourceTrigger
值更改为Explicit
并手动调用UpdateSource
方法更新Binding
。请查看MSDN上的Binding.UpdateSourceTrigger Property页面以了解更多信息。