From 38abf55eb33e0ecf11fae2107a3ee77d03a479f7 Mon Sep 17 00:00:00 2001
From: mckaragoz <78308169+mckaragoz@users.noreply.github.com>
Date: Tue, 21 Mar 2023 16:39:40 +0300
Subject: [PATCH] SelectExtended Show Text Primarily on Chip
---
.../ListExtended/MudListExtended.razor.cs | 2 +-
.../SelectExtended/MudSelectExtended.razor | 4 +-
.../SelectExtended/MudSelectExtended.razor.cs | 3 +-
.../Examples/SelectExtendedExample5.razor | 43 ++++++++++++++++---
4 files changed, 42 insertions(+), 10 deletions(-)
diff --git a/CodeBeam.MudBlazor.Extensions/Components/ListExtended/MudListExtended.razor.cs b/CodeBeam.MudBlazor.Extensions/Components/ListExtended/MudListExtended.razor.cs
index 9735e365..ff24e599 100644
--- a/CodeBeam.MudBlazor.Extensions/Components/ListExtended/MudListExtended.razor.cs
+++ b/CodeBeam.MudBlazor.Extensions/Components/ListExtended/MudListExtended.razor.cs
@@ -442,7 +442,7 @@ protected internal void UpdateSelectedValue()
}
SelectedValue = SelectedItem == null ? default(T) : SelectedItem.Value;
- SelectedValues = SelectedItems.Select(x => x.Value).ToHashSet(_comparer);
+ SelectedValues = SelectedItems?.Select(x => x.Value).ToHashSet(_comparer);
}
private T _selectedValue;
diff --git a/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor b/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor
index 07f41053..6bf1a139 100644
--- a/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor
+++ b/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor
@@ -34,9 +34,9 @@
@if (ValuePresenter == ValuePresenter.Chip)
{
- @foreach (var val in SelectedValues)
+ @foreach (var item in Items?.Where(x => SelectedValues.Contains(x.Value)) ?? new List>())
{
-
+
}
}
diff --git a/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs b/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs
index 5a28cff3..4767293a 100644
--- a/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs
+++ b/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs
@@ -10,6 +10,7 @@
using MudBlazor.Utilities;
using MudBlazor.Utilities.Exceptions;
using MudExtensions.Enums;
+using MudExtensions.Extensions;
using static MudBlazor.CategoryTypes;
namespace MudExtensions
@@ -1101,7 +1102,7 @@ protected override bool HasValue(T value)
protected async Task ChipClosed(MudChip chip)
{
- SelectedValues = SelectedValues.Where(x => x.Equals(Converter.Get(chip.Text)) == false);
+ SelectedValues = SelectedValues.Where(x => x.Equals(Converter.Get(chip.Value?.ToString())) == false);
await SelectedValuesChanged.InvokeAsync(SelectedValues);
}
}
diff --git a/ComponentViewer.Docs/Pages/Examples/SelectExtendedExample5.razor b/ComponentViewer.Docs/Pages/Examples/SelectExtendedExample5.razor
index 63364dcb..bb50aca1 100644
--- a/ComponentViewer.Docs/Pages/Examples/SelectExtendedExample5.razor
+++ b/ComponentViewer.Docs/Pages/Examples/SelectExtendedExample5.razor
@@ -1,7 +1,15 @@
-
+ @foreach (var item in complexes)
+ {
+
+ }
+
+
+
@foreach (var state in states)
{
@@ -20,13 +28,13 @@
Value:
"
- @value
+ @stringValue
"
SelectedValues: HashSet<string>
{
- @(string.Join(", ", options.Select(x => $"\"{x}\"")))
+ @(string.Join(", ", stringValues.Select(x => $"\"{x}\"")))
}
@@ -39,12 +47,30 @@
@code {
MudRadioGroup _radioGroup;
ValuePresenter _valuePresenter = ValuePresenter.Text;
- string value { get; set; } = "Nothing selected";
- IEnumerable options { get; set; } = new HashSet() { "Alaska", "California" };
+ string stringValue { get; set; } = "Nothing selected";
+ IEnumerable stringValues { get; set; } = new HashSet() { "Alaska", "California" };
+ int? intValue;
+ IEnumerable intValues { get; set; } = new HashSet() { 2, 3 };
bool _chipCloseable = false;
Variant _chipVariant = Variant.Filled;
Size _chipSize = Size.Small;
+ public class Complex
+ {
+ public int? Value { get; set; }
+ public string Text { get; set; }
+ }
+
+ private Complex[] complexes =
+ {
+ new Complex() { Value = null, Text = "Null" },
+ new Complex() { Value = 1, Text = "A"},
+ new Complex() { Value = 2, Text = "B"},
+ new Complex() { Value = 3, Text = "C"},
+ new Complex() { Value = 4, Text = "D"},
+ new Complex() { Value = 5, Text = "E"},
+ };
+
private string[] states =
{
"Alabama", "Alaska", "American Samoa", "Arizona",
@@ -63,7 +89,12 @@
"Washington", "West Virginia", "Wisconsin", "Wyoming",
};
- private string GetMultiSelectionText(List selectedValues)
+ private string GetMultiSelectionText(List selectedValues)
+ {
+ return $"{selectedValues?.Count} value{(selectedValues?.Count > 1 ? "s have" : " has")} been selected";
+ }
+
+ private string GetMultiSelectionText2(List selectedValues)
{
return $"{selectedValues.Count} state{(selectedValues.Count > 1 ? "s have" : " has")} been selected";
}