我在纯WPF窗口中创建了一个带有绑定的简单TextBox
<TextBox Name="MyTextBox"
Focusable="True" Width="150"
Text="{Binding MyText, UpdateSourceTrigger=PropertyChanged}"</TextBox>
我的问题是,在任何情况下都不会更新字符串属性'MyText'。如果我键入空格字符,则更新属性。如果我通过剪贴板将文本粘贴到TextBox中,则会更新属性MyText。但如果我输入任何其他角色,则没有任何反应。 我为TextChanged注册了一个事件处理程序以进行调试。该事件仅发生在空格字符和粘贴操作中,但不包含其他字符。
关于我的环境的一些话: WPF窗口可以被拆分为这个TextBox。我从DLL内部打开这个窗口。完整的项目目标是.Net2,由于WPF,现在面向Framework 3.5。 我不知道如何让这个更容易找到问题。
答案 0 :(得分:5)
您提到了Framework 2.0。如果您的应用程序基于Windows窗体,则应记住一些互操作主题。在打开窗口之前,您是否尝试过以下操作:
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(YourWindowObject)
否则尝试从WPF应用程序打开窗口。
答案 1 :(得分:1)
默认情况下,绑定模式是一种方式。这意味着它默认从属性加载,但不会设置。在绑定中添加“Mode = Twoway”(请参阅代码段),看看这是否可以解决您的问题。
<TextBox Name="MyTextBox"
Focusable="True" Width="150"
Text="{Binding MyText, Mode=Twoway, UpdateSourceTrigger=PropertyChanged}">
</TextBox>