Ram*_*ses 3 c# blazor mudblazor
有可能做到吗?我目前正在尝试在 MudBlazor 中选择某些内容时显示一个弹出窗口。但是当我尝试调用该函数时,使用选定的值它永远不会命中它。enter code here
<MudSelect T="string" MultiSelection="true" SelectAll="true" SelectAllText="Select all InputModules" HelperText="@value" @bind-Value="value" @bind-SelectedValues="SelectedInputModules" MultiSelectionTextFunc="@(new Func<List<string>, string>(GetMultiSelectionText))" Label="InputModules" AdornmentIcon="@Icons.Material.Filled.Search">
@foreach (var con in conTask.Select(x => x.InputModuleName).Distinct())
{
<MudSelectItem T="string" Value="@con" OnClick="@(()=> ToggleInputModuleVisibility(SelectedInputModules.ToString()))">@con</MudSelectItem>
}
Run Code Online (Sandbox Code Playgroud)
@code
{ private string value { get; set; } = "Nothing selected";
private IEnumerable<string> SelectedInputModules { get; set; } = new HashSet<string>();
private string GetMultiSelectionText(List<string> selectedValues)
{
return $"{selectedValues.Count} InputModule{(selectedValues.Count > 1 ? "s have" : " has")} been selected";
}
Run Code Online (Sandbox Code Playgroud)
}
我不太清楚这是否是逻辑错误。或者是否需要使用不同的方法来击球。我尝试使用“SelectedValuesChanged”,但它说该参数已被bind-SelectedValues使用
删除@bind-SelectedValues =“SelectedInputModules”并使用SelectedValuesChanged =“OnSelectedValuesChanged”:
<MudSelect T="string" MultiSelection="true" SelectAll="true" SelectAllText="Select all InputModules"
HelperText="@value" @bind-Value="value"
MultiSelectionTextFunc="@(new Func<List<string>, string>(GetMultiSelectionText))" Label="InputModules"
AdornmentIcon="@Icons.Material.Filled.Search" SelectedValuesChanged="OnSelectedValuesChanged">
@foreach (var con in conTask.Select(x => x.InputModuleName).Distinct())
{
<MudSelectItem T="string" Value="@con"> @con </MudSelectItem>
}
Run Code Online (Sandbox Code Playgroud)
然后在 OnSelectedValuesChanged 方法中手动绑定 SelectedInputModules:
private void OnSelectedValuesChanged(IEnumerable<string> values)
{
SelectedInputModules = values;
// Show your popup
}
Run Code Online (Sandbox Code Playgroud)