0

我在 WPF 中有一个文本框并将命令绑​​定到其 LostFocus 事件并在该命令中进行一些验证。

现在在同一个窗口上,我有一个保存按钮,其键绑定是 Ctrl + S。

如果在文本框中进行一些更改,然后按 Ctrl + S,它会执行保存命令,而不会在我的文本框中引发丢失焦点事件。

我知道这是设计使然。

但是我想在保存命令之前执行那段代码,我不能在保存过程中对该代码进行硬编码,我只想在焦点在文本框中时才执行它。

4

1 回答 1

0

您需要将验证代码分解为一个单独的方法,该方法可由 LostFocus 和 Save 命令调用。从 Save 调用 LostFocus 是实现此逻辑的不好方法。

新方法可以返回一个布尔值来指示验证是否成功。有更好的验证方法不依赖于绑定 LostFocus 命令,请查看我的博客文章将数据绑定、验证和 MVVM 提升到新的水平 - 第 1 部分以获得更多想法。

于 2012-12-26T06:43:49.993 回答