我在 Visual Studio 2012 Ultimate 中使用 .NET 4.5 开发了一个 Windows 8 应用程序。
我遇到的问题是,如果我可以在代码中说 TextBox 的文本值,则 OnChanged 事件会以一种不可预测的方式被触发,并且 OnChanged 事件处理程序中的代码会在我不希望它时被触发。
例如
在 OnChanged 事件处理程序中,当用户更改 TextBox 中的文本时,我可能有一些代码将应用程序状态更新为“正在编辑..”。但是,如果我自己在代码中更改文本,我不希望更改状态。
所以我创建了一个名为“更新”的全局变量,它控制 OnChanged 事件中的代码是否可以运行。
我将更新设置为真,然后将文本框文本属性设置为某个值并将更新变量设置为假。问题是,在我将 Updating 变量设置为 false 导致事件处理程序中的代码被触发后,TextBox 的 OnChanged 事件似乎被触发了。
我想这与 Win 8 应用程序的异步特性有关。
有谁知道我该如何解决这个问题?有关此行为的一些背景信息也会有所帮助。