选项卡式页面之间的 wpf 验证刷新

DRa*_*app 3 validation wpf tabbed-interface

我通过此 WPF 验证、IDataErrorInfo、INotifyPropertyChange 内容到达那里,但刷新时出现新问题。我有一个窗口,上面有一堆控件。我有一个选项卡式页面界面,为简单起见,有 2 页...每页有 5 个控件。

我开始“添加”一条记录,所以所有字段都是空白的。例如:第一页上需要验证的 3 个字段被正确标记为红色边框以表明它们是必需的......没问题。

现在,我点击第 2 页并立即返回到第 1 页。红色边框都消失了。它们不会重新出现红色,除非我明确地通过它们来重新聚焦它们,失去焦点并强制它通过 IDataErrorInfo 进行丢失焦点/属性更改验证。

首先,任何解释为什么 WPF 丢失第一页的样子只是因为它必须更改第 1 页的可见性以显示第 2 页,然后返回到第 1 页。

第二,关于如何强制控件正确刷新的建议,红色边框表示它们是必需的。

谢谢

小智 6

只需将您验证的控件放在 AdornerDecorator 中,它就可以正常工作;)

 <TabItem>
  <AdornerDecorator>
    <Grid>
      <TextBox>
      </TextBox>
      ...
   </Grid>
  </AdornerDecorator>
</TabItem>
Run Code Online (Sandbox Code Playgroud)