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

时间:2012-09-05 08:15:26

标签: .net wpf windows-7 windows-xp

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

我有一个Window,其中是GroupBox,其中是TextBoxDataContext上的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导致整个程序崩溃,出现此错误:

  

EventType:clr20r3,system.invalidoperationexception。

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

TextBox更改为Label(并将Text属性更改为Content)可防止此次崩溃,并且该计划按计划运行;它似乎只是TextBox错误。

虽然可以将TextBox切换为Label(考虑到我的情况下它仍然是ReadOnly),我希望TextBox为了外观。可能是我必须从后面的代码手动更新Text属性。

无论如何,主要是我只是想指出这个问题以防其他人遇到类似的东西。尽管如此,对于为什么会这样做的任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

根据评论中的建议,我实施了AppDomain.UnhandledException,如此处所述。我把代码放在前面:

app.InitializeComponent();

app.Run();

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

“TwoWay或OneWayToSource绑定无法在TextBox的只读属性上运行。

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