让用户在单词之间输入空格,但在使用 PropertyChanged 时删除前导和尾随空格
Let user enter spaces between words but remove leading and trailing spaces when using PropertyChanged
在下面的代码中,我在输入第七个字符后立即进行搜索。一切正常,除了用户无法键入空格,因为正如预期的那样,每次输入新字符时它们都会被删除,因为我在 PropertyChanged
事件上调用 Trim()
方法。我希望能够做的是让用户能够键入空格但删除任何前导和尾随空格。换句话说,如果用户在 he/she 正在搜索的单词或句子前后输入了一些空格,我想删除空格并只搜索单词。
例如,如果用户键入...
<space><space><space>The Cat<space><space><space>
我希望程序忽略空格并在输入最后一个 t
后立即搜索 The Cat
。
完成此任务的最佳方法是什么?
XAML:
<TextBox x:Name="myTextBox" Text="{Binding InputFileNameChanged, UpdateSourceTrigger=PropertyChanged}"/>
视图模型.CS
public string InputFileNameChanged
{
get { return _inputFileName; }
set {
_inputFileName = value.Trim();
if (_inputFileName.Length == 7) {
// search file
}
}
}
如果我是你,我不会 trim 支持字段,而只会 trim 在进行 check/search 之前。即
public string InputFileNameChanged
{
get { return _inputFileName; }
set {
_inputFileName = value;
var trimmed = value.Trim();
if (trimmed.Length >= 7) {
// search file using trimmed
}
}
}
在下面的代码中,我在输入第七个字符后立即进行搜索。一切正常,除了用户无法键入空格,因为正如预期的那样,每次输入新字符时它们都会被删除,因为我在 PropertyChanged
事件上调用 Trim()
方法。我希望能够做的是让用户能够键入空格但删除任何前导和尾随空格。换句话说,如果用户在 he/she 正在搜索的单词或句子前后输入了一些空格,我想删除空格并只搜索单词。
例如,如果用户键入...
<space><space><space>The Cat<space><space><space>
我希望程序忽略空格并在输入最后一个 t
后立即搜索 The Cat
。
完成此任务的最佳方法是什么?
XAML:
<TextBox x:Name="myTextBox" Text="{Binding InputFileNameChanged, UpdateSourceTrigger=PropertyChanged}"/>
视图模型.CS
public string InputFileNameChanged
{
get { return _inputFileName; }
set {
_inputFileName = value.Trim();
if (_inputFileName.Length == 7) {
// search file
}
}
}
如果我是你,我不会 trim 支持字段,而只会 trim 在进行 check/search 之前。即
public string InputFileNameChanged
{
get { return _inputFileName; }
set {
_inputFileName = value;
var trimmed = value.Trim();
if (trimmed.Length >= 7) {
// search file using trimmed
}
}
}