Я создаю приложение UWP для компании, в которой я работаю, и один из запросов - запуск поискового запроса по мере его ввода.Я успешно сделал это, но я сломал модель MVVM, чтобы сделать это.Вот мой текущий код, и если есть способ сделать его более дружественным к MVVM и дать другим пример для работы, было бы здорово.
VIEW:
<TextBox x:Name="SearchTxtBx" PlaceholderText="Search..." Visibility="Collapsed" Text="{x:Bind ViewModel.SearchValue, Mode=TwoWay}" Grid.Row="6" Grid.ColumnSpan="2" KeyUp="SearchTxtBx_KeyUp" />
CODE BEHIND:
private void SearchTxtBx_KeyUp(object sender, KeyRoutedEventArgs e)
{
if ((bool)FNSearchOpt.IsChecked || (bool)LNSearchOpt.IsChecked)
{
var testText = SearchTxtBx.Text;
ViewModel.GetSearchResults(testText);
}
}
VIEWMODEL:
public void GetSearchResults(string typedText = "")
{
string queryString = "";
if((FNSearchCheck || LNSearchCheck) && !typedText.isNullOrWhiteSpace())
{
SearchValue = typedText;
}
Проблема, с которой я сталкиваюсь при переходе прямо к методу в Viewmodel, заключается в том, что он не будет обновлять свойство, пока не потеряет фокус, поэтому значение поискаnull, если я не использую код для его установки.
Опять же, любая помощь, которая сделает этот MVVM более дружественным, будет принята с благодарностью.Спасибо!