我有一个具有这三个属性的 View 模型:

string searchString;
ObservableCollection<Company> ListedItems;
ICommand SearchCommand;

它代表我的数据库中可搜索的公司列表。 SearchCommand 根据 searchString 的值搜索数据库,然后用结果填充 ListedItems
SearchString 绑定(bind)到一个文本框,而 SearchCommand 绑定(bind)到一个按钮。我想让它在用户在文本框中键入内容时自动执行 SearchCommand,而无需用户单击按钮。

目前,我通过我的 viewModel 执行此操作:
public ListViewModel() {
    this.PropertyChanged += delegate(object o, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == "SearchString")
            SearchCommand.Execute(null);
    };
}

这样对吗?在 View 中使用此功能会更好吗?如果是这样,那是如何实现的?

最佳答案

在我看来,更合适的解决方案是从 ViewModel 上 SearchString 属性的 setter 调用命令。

关于c# - 'call command on property change' 功能应该去哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10413148/

10-10 11:28