silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight – TextBox.TextChanged事件在Windows Phone 7模拟器上触发两次大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个非常简单的测试应用程序只是为了玩Windows Phone 7.我刚刚添加了一个TextBox和TextBlock到标准UI模板。唯一的自定义代码如下: public partial class MainPage : PhoneApplicationPage { public MainPage() { InitializeComponent(); }
@H_607_14@
@H_607_14@
我有一个非常简单的测试应用程序只是为了玩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中显示两行。我试过的一切表明事件是真正发射两次,我不知道为什么。我已经验证它只订阅一次 – 如果我取消@L_576_18@mainPage构造函数,当文本更改时,根本不会发生任何事情(对于文本块)

我试过在一个普通的Silverlight应用程序的等效代码,它没有发生那里。我没有物理手机来重现这一点。我没有找到任何记录这是一个已知的问题在Windows Phone 7。

任何人都可以解释我做错了什么,或者我应该报告为一个错误

编辑:为了减少这是由于具有两个文本控件的可能性,我已经尝试删除TextBlock完全,并将TextBoxChanged方法更改为增量计数器。然后我在模拟器中运行,键入10个字母,然后在柜台上放一个断点;线(只是为了摆脱任何可能性,打破调试器是导致问题) – 它显示计数器为20。

编辑:我现在asked in the Windows Phone 7 forum …我们会看到会发生什么。

解决方法

TextChanged事件在WP7中触发两次的原因是TextBox如何为Metro外观模板化的副作用。

如果在Blend中编辑TextBox模板,您将看到它包含禁用/只读状态的辅助TextBox。这导致,作为副作用,事件发射两次。

如果不需要这些状态,可以更改模板以删除额外的TextBox(和关联状态),或者修改模板以在禁用/只读状态下实现不同的外观,而不使用辅助TextBox

这样,事件将只触发一次。

@H_403_43@
@H_607_14@

大佬总结

以上是大佬教程为你收集整理的silverlight – TextBox.TextChanged事件在Windows Phone 7模拟器上触发两次全部内容,希望文章能够帮你解决silverlight – TextBox.TextChanged事件在Windows Phone 7模拟器上触发两次所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:7phonesilverlighttextboxtextchanged两次事件模拟器触发
猜你在找的silverlight相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap