如何获取MudList中选中项的索引及对应绑定对象?
正确实现方法
直接通过绑定原始对象的方式就能解决问题,无需通过索引查找,步骤如下:
调整MudList和MudListItem的绑定逻辑
- 给每个
<MudListItem>设置Value="@branch",把列表项和原始Branch对象关联起来 - 将MudList的
@bind-SelectedItem直接绑定到Branch类型的变量,而非MudListItem
- 给每个
简化后台代码逻辑
- 定义
Branch类型的选中项变量,后续创建Staff时直接用这个变量即可
- 定义
完整代码示例:
<MudList Clickable="true" @bind-SelectedItem="selectedBranch"> @foreach (Branch branch in branches) { <MudListItem Text="@branch.BranchName" Value="@branch"></MudListItem> } </MudList> @code { private List<Staff?> staffs = new List<Staff>(); private List<Branch> branches = new List<Branch>(); // 直接绑定选中的原始Branch对象 private Branch selectedBranch { get; set; } // 示例:创建Staff的方法(建议放到触发事件里,比如按钮点击) private void CreateStaff(string firstName, string lastName, string adress) { // 先判断选中项不为空,避免空引用 if (selectedBranch == null) return; Staff staff = new Staff { FirstName = firstName, LastName = lastName, Adr = adress, Br = selectedBranch }; staffs.Add(staff); } }
关键说明
- 核心是利用
MudListItem的Value属性关联原始对象,让MudList的选中项直接对应Branch实例,省去索引查找的步骤 - 一定要判断
selectedBranch不为空再使用,防止出现空引用异常
内容的提问来源于stack exchange,提问作者Bosse
相关产品推荐
相关产品推荐

