0

我从一个文本框派生并引入了一个带有日历和时间选择器的弹出窗口,这导致了一个完美运行的日期时间选择器。现在,我有一个要求,如果我们需要在日期时间选择器中显示无效的文本(除了 date time ),我们应该能够做到这一点,只有在加载时,比如无效的内容来自数据库,我们应该能够显示它。

但是如果用户试图输入一个无效的值,他应该被限制这样做。

我们如何才能做到这一点,因为我已经将文本框的文本属性绑定到了视图模型的属性。我还将处理 textchanged 事件。一旦数据

我也可以,取消操作。

我曾想过使用标志,但使用 OK/Cancel 让我陷入了设置/重新设置标志的两难境地!

或者绑定中的模式会有帮助吗?

感谢任何帮助。提前致谢。

4

1 回答 1

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;
    }
}

这还将从 UI 控件中清除Focus丢失的无效值。但是,如果 usingLostFocus不适合您,您也可以将您的Binding.UpdateSourceTrigger值更改为Explicit并手动调用该UpdateSource方法来更新Binding. 请查看 MSDN 上的Binding.UpdateSourceTrigger 属性页面以了解更多信息。

于 2013-10-22T12:25:37.133 回答