gpt4 book ai didi

c# - UWP 运行查询作为类型 - MVVM

转载 作者:行者123 更新时间:2023-12-03 10:32:15 25 4
gpt4 key购买 nike

我正在为我工​​作的公司创建一个 UWP 应用程序,其中一个请求是在他们键入时运行搜索查询。我已经成功地做到了,但我打破了 MVVM 模型来做到这一点。这是我当前的代码,如果有办法让它对 MVVM 更友好,并给其他人一个可以使用的例子,那就太好了。

看法:

<TextBox x:Name="SearchTxtBx" PlaceholderText="Search..." Visibility="Collapsed" Text="{x:Bind ViewModel.SearchValue, Mode=TwoWay}" Grid.Row="6" Grid.ColumnSpan="2" KeyUp="SearchTxtBx_KeyUp" />

代码背后:
 private void SearchTxtBx_KeyUp(object sender, KeyRoutedEventArgs e)
{
if ((bool)FNSearchOpt.IsChecked || (bool)LNSearchOpt.IsChecked)
{
var testText = SearchTxtBx.Text;

ViewModel.GetSearchResults(testText);
}

}

View 模型:
 public void GetSearchResults(string typedText = "")
{
string queryString = "";

if((FNSearchCheck || LNSearchCheck) && !typedText.isNullOrWhiteSpace())
{
SearchValue = typedText;
}

我在直接进入 Viewmodel 中的方法时遇到的问题是它不会更新属性,直到它失去焦点,所以搜索值为 null,除非我使用后面的代码来设置它。

再次感谢任何使这对 MVVM 更友好的帮助。谢谢!

最佳答案

只需设置 UpdateSourceTrigger属性(property)给 PropertyChanged :

<TextBox ... Text="{x:Bind ViewModel.SearchValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ... />

然后源属性( ViewModel.SearchValue)应在绑定(bind)目标值更改时更新,即在每次击键时。

关于c# - UWP 运行查询作为类型 - MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53817850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com