命令更新

This commit is contained in:
2026-02-23 19:14:40 +08:00
parent 68dfdc15a9
commit 4961914919
4 changed files with 109 additions and 91 deletions

View File

@@ -13,7 +13,7 @@ namespace Melskin.Controls
/// </summary>
public class SearchableComboBox : ComboBox
{
private TextBox editableTextBox;
private TextBox? editableTextBox;
private bool isInternalOperation;
static SearchableComboBox()
@@ -31,11 +31,13 @@ namespace Melskin.Controls
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
if (GetTemplateChild("PART_EditableTextBox") is TextBox _editableTextBox)
editableTextBox = GetTemplateChild("PART_EditableTextBox") as TextBox;
if (editableTextBox != null)
{
_editableTextBox.TextChanged += OnEditableTextBoxTextChanged;
editableTextBox.TextChanged += OnEditableTextBoxTextChanged;
// 点击时全选
_editableTextBox.GotFocus += (s, e) => _editableTextBox.SelectAll();
editableTextBox.GotFocus += (s, e) => editableTextBox.SelectAll();
}
}
@@ -54,7 +56,7 @@ namespace Melskin.Controls
private void OnEditableTextBoxTextChanged(object sender, TextChangedEventArgs e)
{
if (isInternalOperation) return;
if (editableTextBox == null) return;
string searchText = editableTextBox.Text;
string selectedText = GetItemDisplayText(SelectedItem);
@@ -75,7 +77,7 @@ namespace Melskin.Controls
string itemText = GetItemDisplayText(item);
// 只要包含关键字就显示(忽略大小写)
return itemText.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) >= 0;
return itemText.Contains(searchText);
};
// 自动打开下拉框