private void DisplayRadicalsByNumberOfReferencesMenuItemClick(object sender, RoutedEventArgs e) { if (Char2Radicals == null || Radical2Chars == null) { return; } ResetStatusText(); RefreshDataViewWithRadicalsOrderByCharCount(Radical2Chars, () => StatusCharCountText.SetResourceReference(TextBlock.TextProperty, "StatusBar.Unavailable")); }
private void ApplicationCommandsFind(object sender, ExecutedRoutedEventArgs e) { if (DataView.Items.Count == 0) { return; } var box = new SearchBox { Owner = this }; box.ShowDialog(); if (box.Action == SearchBox.SearchBoxAction.None || string.IsNullOrEmpty(box.SearchKeyString) || string.IsNullOrWhiteSpace(box.SearchKeyString)) { return; } if (Char2Radicals == null || Radical2Chars == null) { return; } ResetStatusText(); void UpdateInterfaceWhenHasResult() => StatusRadicalCountText.SetResourceReference(TextBlock.TextProperty, "StatusBar.Unavailable"); void UpdateInterfaceWhenNoResult() { var NoResultTextBlock = new TextBlock(); NoResultTextBlock.SetResourceReference(TextBlock.TextProperty, "DataView.NoResult"); RefreshDataView(null, new List <ListViewItem> { new ListViewItem { Content = NoResultTextBlock, HorizontalAlignment = HorizontalAlignment.Center } }, () => { StatusRadicalCountText.SetResourceReference(TextBlock.TextProperty, "StatusBar.Unavailable"); StatusCharCountText.SetResourceReference(TextBlock.TextProperty, "StatusBar.Unavailable"); }); } switch (box.Action) { case SearchBox.SearchBoxAction.SearchByWord: SearchByWord(box.SearchKeyString[0], UpdateInterfaceWhenHasResult, UpdateInterfaceWhenNoResult); break; case SearchBox.SearchBoxAction.SearchByRadical: SearchByRadical(box.SearchKeyString[0], UpdateInterfaceWhenHasResult, UpdateInterfaceWhenNoResult); break; case SearchBox.SearchBoxAction.SearchByMultipleRadical: SearchByMultipleRadical(box.SearchKeyString, UpdateInterfaceWhenHasResult, UpdateInterfaceWhenNoResult); break; } }