如何以 MVVM 方式实现此 TextChanged 事件处理程序?

How do I implement this TextChanged event handler the MVVM way?

如何以 MVVM 方式实现此事件处理程序?

我见过的其他解决方案是否在视图模型上实现了命令或 属性。但是,这意味着每个文本更改事件都会变成命令执行或 属性 集。但是这个事件处理程序会过滤掉除用户输入之外的所有内容。您将如何使用命令或 属性 绑定来做到这一点?

private async void SearchBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
   if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
   {
      await this.ViewModel.RefreshAddressSuggestions(sender.Text);    
   }
}

How do I implement this TextChanged event handler the MVVM way?

根据您的要求,您可以将 Text 属性 与 ViewModel 绑定,并检查文本值更改以调用 RefreshAddressSuggestions 方法。

<AutoSuggestBox Text="{x:Bind SearchText, Mode=TwoWay}"> 


private string searchText;

public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
    if (PropertyChanged != null)
    {
        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}
public string SearchText
{

    get { return searchText; }
    set
    {
        _passWord = value;
        this.ViewModel.RefreshAddressSuggestions(value);
        OnPropertyChanged();


    }
}