我已经在这里创建了一个表,并希望将所选参数传输到标题区域中的组件.

enter image description here

UserList.razor

<RadzenDataGrid Data="@usermodel"
                TItem="Userlistmodel"
                @bind-Value="@selectedUser"
                RowSelect=@RowSelect>
<Columns>
 <RadzenDataGridColumn TItem="Userlistmodel" Property="PNRUID" Title="PNRUID" Width="120px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="PNR" Title="PNR" Width="120px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="Nachname" Title="Nachname" Width="170px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="Vorname" Title="Vorname" Width="170px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="Geburtsdatum" Title="Geburtsdatum" /></Columns>
</RadzenDataGrid>

 <RadzenCard Style="margin-bottom:20px">
     User:
     <b>@selectedUser.FirstOrDefault()?.Nachname</b>
 </RadzenCard>

@code{

public IList<Userlistmodel>? selectedUser { get; set; }

void RowSelect( Userlistmodel userlistmodel )
{
    Console.WriteLine( userlistmodel.Nachname );
}
}

我try 了以下操作来传输标题区域中的数据(Nachname).有些东西仍然缺失.组件(UserInfo.razor)在标题区域中实现.

UserInfo.razor

@using LMERP.AppAdmin.Shared.Models.UserMgmt

<div class="col d-flex justify-content-end">
    <h3>Header area</h3>
    <div class="col-1">
        <RadzenIcon Icon="account_box" Class="icon-s icon-outline icon-header-1 hidden-1 mt-header" />
    </div>
    <div class="col-1 pl-2">
        <div class="text div-header-1 hidden-2">
            <b>User:</b>
            @if ( selectedUser?.Any() == true )
            {
                foreach ( var role in selectedUser )
                {
                    <p class="mb-0">@role.Nachname</p>
                }
            }
            else
            {
                <p class="mb-0">Select Name</p>
            }
            </div>
    </div>
</div>

@code {
    [Parameter]
    public string Nachname { get; set; }

    [Parameter]
    public IList<Userlistmodel>? selectedUser { get; set; }

}

它也不适用于CascadingValue.

推荐答案

您可以通过实现如上所述的内存中状态容器服务来实现这一点.

创建一个StateContainer级的班级.

public class StateContainer
{
    private Userlistmodel? _selectedUser;

    public Userlistmodel? SelectedUser
    {
        get => _selectedUser;
        set
        {
            _selectedUser = value;
            NotifyStateChanged();
        }
    }

    public event Action? OnChange;

    private void NotifyStateChanged() => OnChange?.Invoke();
}

Program.cs中注册为单例服务(或范围为Blazor服务器端)

builder.Services.AddSingleton<StateContainer>();

内页UserList.razor张:

@inject StateContainer State

<RadzenDataGrid Data="@usermodel"
                TItem="Userlistmodel"
                @bind-Value="@selectedUser"
                RowSelect=@RowSelect>
<Columns>
 <RadzenDataGridColumn TItem="Userlistmodel" Property="PNRUID" Title="PNRUID" Width="120px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="PNR" Title="PNR" Width="120px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="Nachname" Title="Nachname" Width="170px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="Vorname" Title="Vorname" Width="170px" />
 <RadzenDataGridColumn TItem="Userlistmodel" Property="Geburtsdatum" Title="Geburtsdatum" /></Columns>
</RadzenDataGrid>

 <RadzenCard Style="margin-bottom:20px">
     User:
     <b>@selectedUser.FirstOrDefault()?.Nachname</b>
 </RadzenCard>

@code{

    public IList<Userlistmodel>? selectedUser { get; set; }

    void RowSelect( Userlistmodel userlistmodel )
    {
        Console.WriteLine( userlistmodel.Nachname );
        State.SelectedUser = userlistmodel;
    }
}

而在UserInfo.razor

@implements IDisposable
@inject StateContainer State

@if (State.SelectedUser != null)
{
    <p>@State.SelectedUser.Nachname</p>
}

@code {
    protected override void OnInitialized()
    {
        StateContainer.OnChange += StateHasChanged;
    }

    public void Dispose()
    {
        StateContainer.OnChange -= StateHasChanged;
    }
}

Csharp相关问答推荐

如何设置和接收自定义Visual Studio项目命令的参数

我可以将Expressc操作设置为在另一个Expressc操作完成后自动发生吗?

如何将两个查询结果组合在C#ASP.NET MHC控制器中

当MD5被废弃时,如何在Blazor WASM中使用它?

Blazor:计算值或保留为默认值

需要深入了解NpgSQL DateTimeOffset处理

Unity中的刚体2D运动

Cosmos SDK和Newtonsoft对静态只读记录的可能Mutations

Automapper 12.x将GUID映射到字符串

try 在.Net核心身份注册页面中使用AJAX,但没有成功..NET Core 5.0 Razor页面应用程序

JsonSchema.Net删除假阳性判断结果

自定义列表按字符串的部分排序

CRL已过期,但ChainStatus告诉我RevocationStatus未知

WPF动态设置弹出窗口水平偏移

RCL在毛伊岛应用程序和Blazor服务器应用程序.Net 8.0中使用页面

C#无法将.csv列转换为用于JSON转换的列表

工厂类是如何在.NET 8中注册的?

删除MudRadio时,MudRadioGroup未 Select 正确的MudRadio

WPF:如何从DatagridHeader的内容模板绑定到词典项

如何阻止可传递依赖项出现在项目中