diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 141d4876cdd..4493b162548 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.8.2 + 9.8.3-beta01 diff --git a/src/BootstrapBlazor/Components/SelectGeneric/MultiSelectGeneric.razor.cs b/src/BootstrapBlazor/Components/SelectGeneric/MultiSelectGeneric.razor.cs index d7e3407c58a..734a5baeb29 100644 --- a/src/BootstrapBlazor/Components/SelectGeneric/MultiSelectGeneric.razor.cs +++ b/src/BootstrapBlazor/Components/SelectGeneric/MultiSelectGeneric.razor.cs @@ -12,7 +12,7 @@ namespace BootstrapBlazor.Components; /// MultiSelectGeneric component /// [ExcludeFromCodeCoverage] -public partial class MultiSelectGeneric +public partial class MultiSelectGeneric : IModelEqualityComparer { private List> SelectedItems { get; } = []; @@ -189,12 +189,30 @@ public partial class MultiSelectGeneric [Parameter] public RenderFragment>? ItemTemplate { get; set; } + /// + /// 获得/设置 比较数据是否相同回调方法 默认为 null + /// 提供此回调方法时忽略 属性 + /// + [Parameter] + public Func? ValueEqualityComparer { get; set; } + + Func? IModelEqualityComparer.ModelEqualityComparer + { + get => ValueEqualityComparer; + set => ValueEqualityComparer = value; + } + + /// + /// 获得/设置 数据主键标识标签 默认为 用于判断数据主键标签,如果模型未设置主键时可使用 参数自定义判断数据模型支持联合主键 + /// + [Parameter] + [NotNull] + public Type? CustomKeyAttribute { get; set; } = typeof(KeyAttribute); + [Inject] [NotNull] private IStringLocalizer>? Localizer { get; set; } - private string? PlaceholderString => SelectedItems.Count == 0 ? PlaceHolder : null; - private string? ScrollIntoViewBehaviorString => ScrollIntoViewBehavior == ScrollIntoViewBehavior.Smooth ? null : ScrollIntoViewBehavior.ToDescriptionString(); @@ -535,4 +553,12 @@ private void ResetSelectedItems() } } } + + /// + /// + /// + /// + /// + /// + public bool Equals(TValue? x, TValue? y) => this.Equals(x, y); }