From 0940f31b7eba1cf6b6a8c1fca72d97cf686e79f2 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期五, 04 七月 2025 10:43:00 +0800
Subject: [PATCH] 优化插件,完善TreeListView
---
HMI.UI/Controls/MultiCombox.xaml.cs | 26 +++++++++++++++++---------
1 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/HMI.UI/Controls/MultiCombox.xaml.cs b/HMI.UI/Controls/MultiCombox.xaml.cs
index 85f5bcc..e688cd5 100644
--- a/HMI.UI/Controls/MultiCombox.xaml.cs
+++ b/HMI.UI/Controls/MultiCombox.xaml.cs
@@ -1,5 +1,4 @@
锘縰sing System;
-using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
@@ -53,6 +52,11 @@
private void MultiComboBoxItem_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
+ if (e.OriginalSource is CheckBox)
+ {
+ // 浠嶤heckBox鐐瑰嚮浼犺繃鏉ョ殑浜嬩欢瑕佹媺鍥炵劍鐐癸紝涓嶇劧浼氬崱鍦≒opup灞傚綋鍓嶇殑Item涓�
+ this.Focus();
+ }
if (DataContext is MultiComboBoxData data)
{
data.IsChecked = !data.IsChecked;
@@ -64,17 +68,17 @@
{
if (e.OldValue != null && e.OldValue is MultiComboBoxData oldData)
{
- oldData.IsCheckedChanged -= DataIsExpandedChange;
+ oldData.IsCheckedChanged -= DataIsCheckedChangedChange;
}
if (DataContext != null && DataContext is MultiComboBoxData newData)
{
- newData.IsCheckedChanged += DataIsExpandedChange;
+ newData.IsCheckedChanged += DataIsCheckedChangedChange;
}
}
- private void DataIsExpandedChange(object sender, bool IsExpanded)
+ private void DataIsCheckedChangedChange(object sender, bool isChecked)
{
- parent.Item_IsCheckedChanged((MultiComboBoxData)sender, this, IsExpanded);
+ parent.Item_IsCheckedChanged((MultiComboBoxData)sender, this, isChecked);
}
}
@@ -151,6 +155,8 @@
/// </summary>
public partial class MultiComboBox : ComboBox
{
+ public static readonly string[] splits = new string[] { ", " };
+
protected override DependencyObject GetContainerForItemOverride()
{
var item = new MultiComboBoxItem(this);
@@ -182,8 +188,10 @@
{
var selectedValues = SelectedValues?.ToString() ?? "";
var showNames = this.Text?.ToString() ?? "";
- List<string> values = string.IsNullOrEmpty(selectedValues) ? new List<string>() : selectedValues.Split(',').ToList();
- List<string> names = string.IsNullOrEmpty(showNames) ? new List<string>() : showNames.Split(',').ToList();
+ List<string> values = string.IsNullOrEmpty(selectedValues) ? new List<string>() :
+ selectedValues.Split(splits, StringSplitOptions.RemoveEmptyEntries).ToList();
+ List<string> names = string.IsNullOrEmpty(showNames) ? new List<string>() :
+ showNames.Split(splits, StringSplitOptions.RemoveEmptyEntries).ToList();
if (isChecked)
{
values.Add(data.DataValue);
@@ -194,8 +202,8 @@
values.Remove(data.DataValue);
names.Remove(data.DisplayName);
}
- Text = string.Join(",", names);
- SelectedValues = string.Join(",", values);
+ Text = string.Join(", ", names);
+ SelectedValues = string.Join(", ", values);
}
}
}
--
Gitblit v1.9.1