gpt4 book ai didi

c# - 如何在 Blazor 中以两种方式绑定(bind)级联值?

转载 作者:行者123 更新时间:2023-12-03 22:01:09 28 4
gpt4 key购买 nike

我正在使用 Blazor 中的自定义模板,并试图找到一种双向绑定(bind) CascadingValue 的方法。或实现类似的东西。现在我有以下模板。

@if (PopupVisible)
{
<DxPopup>
<HeaderTemplate>
<h4 class="modal-title">@HeaderText</h4>
<button type="button" class="close" @onclick="@UpdatePopupVisible">&times;</button>
</HeaderTemplate>
<ChildContent>
<div class="modal-body">
<div class="container-fluid">
@bodyContent
</div>
</div>
<div class="modal-footer">
@footerContent
<button class="btn btn-secondary" @onclick="UpdatePopupVisible">Cancel</button>
</div>
</ChildContent>
</DxPopup>
}

@code {
[CascadingParameter] public bool PopupVisible { get; set; }
[CascadingParameter] public EventCallback<bool> PopupVisibleChanged { get; set; }

[Parameter] public RenderFragment HeaderText { get; set; }
[Parameter] public RenderFragment footerContent { get; set; }
[Parameter] public RenderFragment bodyContent { get; set; }

private async Task UpdatePopupVisible()
{
PopupVisible = false;
await PopupVisibleChanged.InvokeAsync(PopupVisible);
}
}
然后我有一个实现这个模板(子)的组件,然后我有一个用按钮按下(父)调用的组件。我想知道是否有办法绑定(bind) PopupVisible来自父级的参数,而不必将其绑定(bind)到子级并让子级将其传递给模板。我还没有找到双向绑定(bind)级联参数的方法,但如果可能的话,我认为这将是最好的方法。除此之外,我不确定是否还有其他方法,或者我将不得不接受我目前传递值的想法。

最佳答案

您不能使用级联参数进行双向绑定(bind)。级联意味着顺流而下,从 parent 到 child ,而不是相反。

我不确定我是否理解您的问题……但是,如果您希望从父组件传递一个值并返回;您可以执行以下操作:
注意:这是一个 双向组件数据绑定(bind)

子组件

@code
{
private bool visible;
[Parameter]
public bool PopupVisible
{
get { return visible }
set
{
if (visible != value)
{
visible = value;

}
}
}

[Parameter] public EventCallback<bool> PopupVisibleChanged { get; set; }
// Invoke the EventCallback to update the parent component' private field visible with the new value.

private Task UpdatePopupVisible()
{
PopupVisible = false;
return PopupVisibleChanged.InvokeAsync(PopupVisible);
}
}

用法
@page "/"

<DxPopup @bind-PopupVisible="visible" />

@code {
private bool visible;
}

注意:如果您需要一些解释,并且认为我没有回答您的问题,请不要犹豫告诉我,但请花时间表达您的问题......我无法完全理解问题。

关于c# - 如何在 Blazor 中以两种方式绑定(bind)级联值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397707/

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