【发布时间】:2009-08-27 17:24:51
【问题描述】:
我在 Visual Basic 2008 中实现了一个函数,它从 System.Winows.Form 对象中获取所有控件的内容,并返回与该内容对应的哈希值。这个函数的使用是检测用户是否修改了页面的内容,并判断我是否要显示一个消息框要求保存。我尝试在 WPF 中执行此操作,但似乎无法获取表单中的所有控件。 有什么办法可以做到这一点,或者更好,有没有可以满足我需要的功能?
谢谢,
【问题讨论】:
我在 Visual Basic 2008 中实现了一个函数,它从 System.Winows.Form 对象中获取所有控件的内容,并返回与该内容对应的哈希值。这个函数的使用是检测用户是否修改了页面的内容,并判断我是否要显示一个消息框要求保存。我尝试在 WPF 中执行此操作,但似乎无法获取表单中的所有控件。 有什么办法可以做到这一点,或者更好,有没有可以满足我需要的功能?
谢谢,
【问题讨论】:
抱歉,我认为这是一种非常糟糕的检测变化的方法。更好的方法是简单地跟踪视图模型中的更改并公开一个脏标志。
也就是说,您可以使用LogicalTreeHelper(或VisualTreeHelper)递归遍历WPF 树并找到您感兴趣的控件。
【讨论】:
我使用这种方法的原因是因为我需要该信息用于其他目的,而且我能够“配置”该方法以满足不同的需求。坦率地说,我不知道您所说的视图模型是什么意思。我是 WPF 的新手,所以如果里面有什么东西,那么我怀疑我以前听说过它。
【讨论】: