gpt4 book ai didi

c# - Blazor MudSelect @bind-SelectedValues 到 id 和 value

转载 作者:行者123 更新时间:2023-12-05 02:44:36 34 4
gpt4 key购买 nike

我需要知道所选项目的 ID 和值。如以下示例。所以选项应该有一系列选定的部分。

<MudGrid>
<MudItem xs="6" sm="6" md="4">
@* <MudSelect T="string" Label="Parts" Strict="true" MultiSelection="true" Variant="Variant.Outlined" @bind-Value="value" @bind-SelectedValues="options" Margin="Margin.Dense" Required="true" Format="F2">*@
<MudSelect T="string" Label="Parts " HelperText="Pick the Parts" MultiSelection="true" @bind-SelectedValues="options">
@foreach (var part in parts)
{
<MudSelectItem T="string" Value=@part.PartValue>@part.PartValue</MudSelectItem>

}
</MudSelect>
</MudItem>
</MudGrid>

@code {

IEnumerable<Parts> parts = new List<Parts>()
{
new Parts() {PartID = 1, PartValue = "Audi"},
new Parts() {PartID = 2, PartValue = "BMW"},
new Parts() {PartID = 3, PartValue = "Chevrolet"},
new Parts() {PartID = 4, PartValue = "Ferrari"},
new Parts() {PartID = 5, PartValue = "Porsche"},
new Parts() {PartID = 6, PartValue = "Renault"}
};
private int value { get; set; } = 0;
private HashSet<int> options { get; set; } = new HashSet<int>() { 0 };

public class Parts
{
public int PartID { get; set; }
public string PartValue { get; set; }
}
}

最佳答案

好了,您可以只在 MudSelect 中使用您的零件,但您必须在零件中提供合适的覆盖以允许相等比较。这是您的更改代码段。你可以在线玩:https://try.mudblazor.com/snippet/wEwFFQPUdcDWgbYs

代码:

<MudGrid>
<MudItem xs="12">
<MudSelect Label="Parts " HelperText="Pick the Parts" MultiSelection="true" @bind-SelectedValues="options">
@foreach (var part in parts)
{
<MudSelectItem Value="@part">@part.PartValue</MudSelectItem>
}
</MudSelect>
</MudItem>
<MudItem xs="12">
<br/><br/>
Selected parts: @string.Join(", ", options.Select(x=>x.PartValue));
</MudItem>
</MudGrid>

@code {

IEnumerable<Parts> parts = new List<Parts>()
{
new Parts() {PartID = 1, PartValue = "Audi"},
new Parts() {PartID = 2, PartValue = "BMW"},
new Parts() {PartID = 3, PartValue = "Chevrolet"},
new Parts() {PartID = 4, PartValue = "Ferrari"},
new Parts() {PartID = 5, PartValue = "Porsche"},
new Parts() {PartID = 6, PartValue = "Renault"}
};
private IEnumerable<Parts> options { get; set; } = new HashSet<Parts>() {
new Parts() {PartID = 2, PartValue = "BMW"},
new Parts() {PartID = 4, PartValue = "Ferrari"},
};

public class Parts
{
public int PartID { get; set; }
public string PartValue { get; set; }
public override bool Equals(object o) {
var other = o as Parts;
return other?.PartID==PartID;
}
public override int GetHashCode() => PartID.GetHashCode();
public override string ToString() {
return PartValue;
}
}
}

关于c# - Blazor MudSelect @bind-SelectedValues 到 id 和 value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66372676/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com