我有一个非常简单的测试应用程序只是为了玩Windows Phone 7.我刚刚添加了一个TextBox和TextBlock到标准UI模板。唯一的自定义代码如下:
public partial class MainPage : PhoneApplicationPage { public MainPage() { InitializeComponent(); } private int counter = 0; private void TextBoxChanged(object sender,TextChangedEventArgs e) { textBlock1.Text += "Text changed " + (counter++) + "\r\n"; } }
TextBox.TextChanged事件在XAML中连接到TextBoxChanged:
<TextBox Height="72" HorizontalAlignment="Left" Margin="6,37,0" Name="textBox1" Text="" VerticalAlignment="Top" Width="460" TextChanged="TextBoxChanged" />
然而,每次我在模拟器中运行时按下一个键(屏幕键盘或物理键盘,按下暂停启用后者),它会增加计数器两次,在TextBlock中显示两行。我试过的一切表明事件是真正发射两次,我不知道为什么。我已经验证它只订阅一次 – 如果我取消订阅MainPage构造函数,当文本更改时,根本不会发生任何事情(对于文本块)。
我试过在一个普通的Silverlight应用程序的等效代码,它没有发生那里。我没有物理手机来重现这一点。我没有找到任何记录这是一个已知的问题在Windows Phone 7。
编辑:为了减少这是由于具有两个文本控件的可能性,我已经尝试删除TextBlock完全,并将TextBoxChanged方法更改为增量计数器。然后我在模拟器中运行,键入10个字母,然后在柜台上放一个断点;线(只是为了摆脱任何可能性,打破调试器是导致问题) – 它显示计数器为20。
编辑:我现在asked in the Windows Phone 7 forum …我们会看到会发生什么。
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。