Fix SelectCheckComboBoxItems()

This commit is contained in:
2023-07-19 16:44:22 +02:00
parent 9584f12fc5
commit 2eef0496ba

View File

@ -269,10 +269,10 @@ namespace Elwig.Helpers {
SelectComboBoxItem(cb, getId, getId(item)); SelectComboBoxItem(cb, getId, getId(item));
} }
public static IEnumerable<object?> GetItemsFromSource(IEnumerable source, Func<object?, object?> getId, IEnumerable<object?> id) { public static IEnumerable<object?> GetItemsFromSource(IEnumerable source, Func<object?, object?> getId, IEnumerable<object?> ids) {
if (source == null) if (source == null)
return Array.Empty<object>(); return Array.Empty<object>();
return source.Cast<object>().Where(i => getId(i)?.Equals(id) ?? false); return source.Cast<object>().Where(i => ids.Any(c => c?.Equals(getId(i)) ?? false));
} }
public static IEnumerable<object?> GetItemsFromSource(IEnumerable source, IEnumerable<object?>? items, Func<object?, object?> getId) { public static IEnumerable<object?> GetItemsFromSource(IEnumerable source, IEnumerable<object?>? items, Func<object?, object?> getId) {
@ -285,11 +285,11 @@ namespace Elwig.Helpers {
ccb.SelectedItems.Clear(); ccb.SelectedItems.Clear();
if (ids == null) return; if (ids == null) return;
foreach (var id in ids) foreach (var id in ids)
ccb.SelectedItems.Add(Utils.GetItemFromSource(ccb.SelectedItems, getId, id)); ccb.SelectedItems.Add(GetItemFromSource(ccb.ItemsSource, getId, id));
} }
public static void SelectCheckComboBoxItems(Xceed.Wpf.Toolkit.CheckComboBox ccb, IEnumerable<object>? items, Func<object?, object?> getId) { public static void SelectCheckComboBoxItems(Xceed.Wpf.Toolkit.CheckComboBox ccb, IEnumerable<object>? items, Func<object?, object?> getId) {
SelectCheckComboBoxItems(ccb, getId, GetItemsFromSource(ccb.ItemsSource, items, getId)); SelectCheckComboBoxItems(ccb, getId, items?.Select(i => getId(i)));
} }
} }
} }