我注意到 WPF 中有一个有趣的错误,我想知道是否其他人也看到了它,如果是,他们是如何解决的?
我有一个Window
, 里面是一个GroupBox
, 里面是一个TextBox
. DataContext
on设置为我的程序中的GroupBox
一个对象,因此绑定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
会导致整个程序崩溃,并出现以下错误:
事件类型:clr20r3,system.invalidoperationexception。
我花了很长时间才完成代码,直到最终将其缩小到上面的 XAML 行。
更改TextBox
为 a Label
(并将Text
属性更改为Content
)可防止此崩溃,并且程序按计划运行;这似乎是一个TextBox
错误。
虽然可以切换TextBox
到Label
(考虑到在我的情况下ReadOnly
无论如何都会切换),但我更喜欢TextBox
外观。可能是我必须Text
从后面的代码手动更新属性。
无论如何,主要是我只是想指出这个问题,以防其他人遇到类似的事情。任何关于为什么会这样的想法都将不胜感激。