Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用反应式UI时通过代码隐藏进行自动建议框(UWP)绑定_Uwp_Reactiveui - Fatal编程技术网

使用反应式UI时通过代码隐藏进行自动建议框(UWP)绑定

使用反应式UI时通过代码隐藏进行自动建议框(UWP)绑定,uwp,reactiveui,Uwp,Reactiveui,反应式UI文档建议使用代码隐藏绑定而不是XAML绑定,以避免内存泄漏。我正在尝试将视图模型中的SearchCommand绑定到AutoSuggestBox SearchView.xaml 但是,这不起作用,因此不会调用该命令。我还尝试绑定QuerySubmitted事件,但在下面的事件中找不到它。我使用了ReactiveUI.Events包 SearchView.xaml.cs 我没有尝试直接绑定命令,但通常我绑定到属性,然后监听更改 this.Bind(ViewModel, viewModel

反应式UI文档建议使用代码隐藏绑定而不是XAML绑定,以避免内存泄漏。我正在尝试将视图模型中的SearchCommand绑定到AutoSuggestBox

SearchView.xaml

但是,这不起作用,因此不会调用该命令。我还尝试绑定QuerySubmitted事件,但在下面的事件中找不到它。我使用了ReactiveUI.Events包

SearchView.xaml.cs


我没有尝试直接绑定命令,但通常我绑定到属性,然后监听更改

this.Bind(ViewModel,
viewModel => viewModel.SearchTerm,
view => view.SearchBox);
然后在视图模型中

private string _searchTerm;

public string SearchTerm
{
    get => _searchTerm;
    set => this.RaiseAndSetIfChanged(ref _searchTerm, value);
}
然后在构造函数内部

this.WhenAnyValue(x => x.SearchTerm).Subscribe(_ => SearchCommand());

这没有经过测试,甚至可能不是最好的方法,但我一直都是这样做的

为了访问QuerySubmitted事件,您需要执行SearchBox.Events.QuerySubmitted。至于BindCommand,您可能必须显式地指定希望将命令绑定到哪个事件。您可以使用名为toEvent:nameofSearchBox.QuerySubmitted的可选字符串参数来执行此操作

要访问QuerySubmitted事件,您需要执行SearchBox.Events.QuerySubmitted。至于BindCommand,您可能必须显式地指定希望将命令绑定到哪个事件。您可以使用名为toEvent:nameofSearchBox的可选字符串参数来实现这一点。QuerySubmitted@ColtBauman这是出于好奇,哪一个适合你?SearchBox.Events,另一个我还没试过。
this.Bind(ViewModel,
viewModel => viewModel.SearchTerm,
view => view.SearchBox);
private string _searchTerm;

public string SearchTerm
{
    get => _searchTerm;
    set => this.RaiseAndSetIfChanged(ref _searchTerm, value);
}
this.WhenAnyValue(x => x.SearchTerm).Subscribe(_ => SearchCommand());