SelectedValuesChanged 与 @bind-SelectedValues

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使用

spy*_*s__ 6

删除@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)