使用PropertyChanged时,允许用户在单词之间输入空格,但删除前导和尾随空格

时间:2018-06-20 14:55:41

标签: c# wpf trim propertychanged updatesourcetrigger

在下面的代码中,我将在输入第七个字符后立即进行搜索。一切工作正常,除了用户不能键入空格,是因为自从我在Trim()事件中调用PropertyChanged方法以来,每次输入新字符时,空格都会被删除。我想做的就是让用户可以键入空格,但可以删除任何前导和尾随空格。换句话说,如果用户在他/她正在搜索的单词或句子前后输入一些空格,我想删除空格并仅搜索单词。

例如,如果用户键入... <space><space><space>The Cat<space><space><space> 我希望程序忽略空格并在输入最后一个The Cat后立即搜索t

实现此目标的最佳方法是什么?

XAML:

<TextBox x:Name="myTextBox" Text="{Binding InputFileNameChanged, UpdateSourceTrigger=PropertyChanged}"/>

ViewModel .CS

    public string InputFileNameChanged
    {
        get { return _inputFileName; }
        set {
            _inputFileName = value.Trim();

            if (_inputFileName.Length == 7) {
                // search file
            }
        }
    }

1 个答案:

答案 0 :(得分:3)

如果我是你,我不会修剪背景字段,而只会在进行检查/搜索之前修剪。即

public string InputFileNameChanged
{
    get { return _inputFileName; }
    set {
        _inputFileName = value;
        var trimmed = value.Trim();
        if (trimmed.Length >= 7) {
            // search file using trimmed
        }
    }
}