Silverlight 5 AutoCompleteBox = Bug

Silverlight 5 AutoCompleteBox = Bug,第1张

概述刚刚安装了几天前发布的SL5和工具包. 将AutoCompleteBox的Text属性设置为string.Empty时会发生错误.它导致AutoCompleteBox处于错误状态.重现错误: 将AutoCompleteBox和Button添加到主页面.注册TextChanged和Click事件.这是代码隐藏: public partial class MainPage : UserControl 刚刚安装了几天前发布的SL5和工具包.
将autocompletebox的Text属性设置为string.Empty时会发生错误.它导致autocompletebox处于错误状态.重现错误:

将autocompletebox和button添加到主页面.注册TextChanged和Click事件.这是代码隐藏:

public partial class MainPage : UserControl{    public MainPage()    {        InitializeComponent();    }    private voID button1_Click(object sender,RoutedEventArgs e)    {        auto.Text = string.Empty;    }    private voID auto_TextChanged(object sender,RoutedEventArgs e)    {        // Put a break point here.    }}

在运行时:

1)在autoBox中输入“aa”.

2)单击按钮.

3)键入“q”. (仍调用TextChanged).

4)擦除“q” – 不调用TextChanged.

5)再次输入“q” – 不调用TextChanged.

6)依此类推,直到你选了一封新信.然后它重新开始.

解决方法 我发现了这种奇怪行为的解决方法.您需要从autocompletebox派生的控件并重写OnApplyTemplate方法以查找autocompletebox的内部TextBox.

当内部TextBox TextChanged事件触发时,您需要手动触发autocompletebox控件的TextChanged事件.

public class CustomautoComplete : autocompletebox{    TextBox mytext;    public overrIDe voID OnApplyTemplate()    {        base.OnApplyTemplate();        mytext = GetTemplateChild("Text") as TextBox;        mytext.TextChanged += new System.windows.Controls.TextChangedEventHandler(mytext_TextChanged);    }    voID mytext_TextChanged(object sender,System.windows.Controls.TextChangedEventArgs e)    {        this.Text = mytext.Text;        OnTextChanged(new RoutedEventArgs());    }}
总结

以上是内存溢出为你收集整理的Silverlight 5 AutoCompleteBox = Bug全部内容,希望文章能够帮你解决Silverlight 5 AutoCompleteBox = Bug所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1078855.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存