在 Windows XP 上运行时 TextBox.Text 绑定错误

Posted

技术标签:

【中文标题】在 Windows XP 上运行时 TextBox.Text 绑定错误【英文标题】:TextBox.Text binding error when running on Windows XP 【发布时间】:2012-08-29 22:07:57 【问题描述】:

我注意到 WPF 中有一个有趣的错误,我想知道是否其他人也看到了它,如果有,他们是如何解决的?

我有一个Window,里面有一个GroupBox,里面有一个TextBoxGroupBox 上的 DataContext 设置为我程序中的一个对象,因此TextBox 上的绑定设置如下:

<TextBox Text="Binding Directory_Data" IsReadOnly="True"
         Name="dataPath_TextBox" Grid.Column="0" Grid.Row="1"
         Height="23" Margin="6,3,3,3"/>

在 Windows 7(我在其上开发)上,这可以正常工作,我什至没有理由再考虑 XAML 的那一行。然而,在 Windows XP(安装了 .NET4.0)上进行一些测试时,打开这个Window 导致整个程序崩溃,并出现以下错误:

EventType: clr20r3, system.invalidoperationexception.

我花了很长时间才完成代码,直到最终将其缩小到上面的 XAML 行。

TextBox 更改为Label(并将Text 属性更改为Content)防止了此崩溃并且程序按计划运行;这似乎是一个TextBox 错误。

虽然可以将TextBox 切换为Label(考虑到在我的情况下无论如何都会是ReadOnly),但为了外观,我更喜欢TextBox。可能是我必须从后面的代码手动更新Text 属性。

无论如何,我主要只是想指出这个问题,以防其他人遇到类似的事情。任何关于为什么会这样的想法都将不胜感激。

【问题讨论】:

是否有更多关于错误的信息?像堆栈跟踪什么的?另外,您是否尝试过另一台基于 XP 的机器? (以确保它不仅仅是框架的损坏安装) 错误框中有一些数字;我不认为它们会很有意义,但如果你愿意,我可以添加它们?是的,我已经在两台机器上试过了。实际上是有人在一台 XP 机器上为我测试它发现了错误,此时我自己在另一台机器上尝试了它并设法复制它。 不,不幸的是,这些数字没有任何用处,至少对我而言。订阅AppDomain.UnhandledException 事件会触发吗?您可以通过这种方式收集更多信息。 msdn.microsoft.com/en-us/library/… 你能否在调试器中打开 CLR 异常以在抛出此异常时获取堆栈跟踪?我想由于 XP 和 Win7 中 WPF 使用的不同渲染器,视图数据可能会以稍微不同的顺序初始化/绑定。 嗨,Gaz,我不能执行 CLR 异常,因为 XP PC 没有 Visual Studio,所以我不能在调试器中运行程序。但是,AppDomain.UnhandledException 解决了这个问题......它表明“A TwoWay 或 OneWayToSource”绑定不能在只读文本框上工作,因此将其更改为 OneWay 可以解决问题。有趣的是,这个问题只出现在 Windows 7 而不是 XP 上。我希望我以前知道这个事件,它会为我节省很多时间!谢谢 KooKiz! 【参考方案1】:

根据 cmets 中的建议,我实现了AppDomain.UnhandledException,如此处所述。我之前放了代码:

app.InitializeComponent();

app.Run();

然后将其输出到MessageBox)。然后重新创建问题,我收到以下消息:

TextBox 的“TwoWay 或 OneWayToSource 绑定无法对只读属性起作用”。

将其更改为OneWay 可以解决问题,但我不确定为什么会在 XP 而不是 Windows 7 上发生这种情况。使TextBox 不是ReadOnly 也可以,但就我而言,我希望它保持ReadOnly

【讨论】:

以上是关于在 Windows XP 上运行时 TextBox.Text 绑定错误的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Windows XP 上运行 CoreCLR?

在 Windows XP 上大批量运行时,Python selenium webdriver 测试导致“严重错误”

如何在 Windows XP 上注销之前运行我的程序?

在 Visual Studio 中使用 XP 工具集编译时出现路径空间的 Windows XP 运行时问题

如何在 xp 和 windows 7 上运行 SWT 应用程序

在 XP 和 Windows 7 上的外部硬盘驱动器上运行 xampp