/************************************ * TextBoxKeyWordChangeEvent *************************************/ private void _textBoxKeywordElement_TextChanged(object sender, TextChangedEventArgs e) { string text = textBoxKeywordElement.Text; //if (String.IsNullOrWhiteSpace(text)) return; //if (String.IsNullOrEmpty(text)) return; // ローマ字変換? string str = ""; if (_KanaConverter != null) { str = _KanaConverter.ConvertToKana(text); } else { str = text; } // Ajust Input string keyword = AdjustToKeyword(str); textBoxKeywordElement.Text = keyword; textBoxKeywordElement.CaretIndex = keyword.Length; // Search by keyword // 前方一致検索ではkeywordの頭にスペースを挿入 if (_PrifixSearch) { keyword = " " + keyword; } var candidates = SeItems.Where(x => x.SearchKeys.Contains(keyword)) .OrderBy(x => x.SortKey) .Select(x => x.DisplayString); if (keyword.Trim().Length > 0 && candidates.Any()) { listBoxElement.ItemsSource = candidates; popupElement.IsOpen = true; } else { listBoxElement.ItemsSource = null; popupElement.IsOpen = false; } // 完全なコード入力で確定 var items = SeItems.Where(x => x.ItemValue == keyword.Trim()).Select(x => x.ItemValue); if (items != null && items.Count() == 1) { string value = items.First(); Commit(value); } }
// SeValueを表示する void SetDisplayString(string value) { string displayString = string.Empty; var item = SeItems.Where(x => x.ItemValue == value).FirstOrDefault(); if (item != null) { displayString = item.ToString(); } labelItemElement.Content = displayString; }
// DisplayStringからitemValueを取得する string GetValueByDisplayString(string displayString) { return(SeItems.Where(x => x.DisplayString == displayString).Select(x => x.ItemValue).FirstOrDefault()); }