gpt4 book ai didi

autocomplete - Silverlight 5 + AutoCompleteBox = 错误

转载 作者:行者123 更新时间:2023-12-04 04:08:26 24 4
gpt4 key购买 nike

刚刚安装了几天前发布的SL5和工具包。
当您将 AutoCompleteBox 的 Text 属性设置为 string.Empty 时,就会发生该错误。它会导致 AutoCompleteBox 处于错误状态。要重现该错误:

向主页添加一个 AutoCompleteBox 和一个按钮。注册到 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)在自动框中键入“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());
}
}

关于autocomplete - Silverlight 5 + AutoCompleteBox = 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com