如何立即调用文本更改事件?

时间:2012-02-07 06:03:39

标签: wpf textbox

我有一个文本框,我添加了一个事件TextChanged,但它没有给我我在该文本框中输入的所有数据,它忽略了最后一个字符但我想要所有字符我输入的内容文本框所以我该怎么做才能帮助我。

3 个答案:

答案 0 :(得分:0)

TextChanged事件为您提供了所有角色:

TextBox currentTextBox = sender as TextBox;
string fullText = CurrentTextBox.Text;

您确定自己不像PreviewKeyDownEvent或任何其他预览事件。所有这些事件都忽略了最后的输入

答案 1 :(得分:0)

创建一个扩展的TextBox类并处理KeyUp事件,以在每次击键后强制更新文本属性绑定。

public class MyWPFTextBox: TextBox
{
    public MyWPFTextBox(): base()
    { KeyUp += new KeyEventHandler(MyWPFTextBox_KeyUp); }

    private void MyWPFTextBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
    {
        BindingExpression BE = GetBindingExpression(TextBox.TextProperty);
        if (BE != null)
            BE.UpdateSource();
    }
}

答案 2 :(得分:-1)

你应该看一下 PreviewTextInput 事件。

你还应该看看mvvm模式,绑定和UpdateSourceTrigger = PropertyChanged。在那里你根本不需要活动,你可以通过绑定获得你的信息。