如果我想向网格或任何参数等组件提供计算值,如果没有值,那么我想保留该值,因为它是由该组件自动计算的,例如默认的线槽宽度.

基本上,我想说参数=计算值,或者如果没有找到休假,我很难在"或"情况下提供一个影响原始默认值的值.像这样:

Width="@dict.GetValueOrDefault(colWidth, "")"

如果我提供""作为默认值,那么它会覆盖组件自己正在做的事情.

或者:

Width = valueFound ? value : 0;

零现在覆盖了原始值,而且我无法访问"宽度",因为它是网格组件的参数,如果有意义,我就不能访问它.

我想这样做:

Width = valueFound ? value : "LEAVE WHATEVER WIDTH WAS ORIGINALLY";

TYIA

Actual example

<DxGrid Data="@data"
    @ref="Grid">
<Columns>
    @foreach (DataColumn col in data.Columns)
    {
        <DxGridDataColumn FieldName="@data.colName"
                          Width="@valueFound ? value : **LEAVE WHATEVER WIDTH WAS ORIGINALLY**
        </DxGridDataColumn>                                
     }
</Columns>

推荐答案

您正在与Razor语法作斗争. 提供的另一个答案适用于单个参数,但如果您有多个参数,就会开始变得非常混乱.

您可以恢复为RenderTreeBuilder个代码,这是Razor编译器实际生成的代码.

@foreach (DataColumn col in data.Columns)
{
    __builder.OpenComponent<DxGridDataColumn>(0);
    __builder.AddComponentParameter(1, "FieldName", data.colName);
    if (data.width is not null)
        __builder.AddComponentParameter(2, "Width", data.width);

    __builder.CloseComponent();
}

或者建立一种方法;

    private RenderFragment<DataColumn> BuildGridColumn => col => builder =>
    {
        builder.OpenComponent<DxGridDataColumn>(0);
        builder.AddComponentParameter(1, "FieldName", data.colName);
        if (data.width is not null)
            builder.AddComponentParameter(2, "Width", data.width);

        builder.CloseComponent();
    };

然后称之为;

@foreach (DataColumn col in data.Columns)
{
    @BuildGridColumn(col)
}

Csharp相关问答推荐

是否可以将gltf转换为字节数组,然后将字节数组转换回文件?

使用GeneratedComInterfaceProperty的.NET 8 COM类对于VB 6/SYS或ALEViewer不可见

使用其可能实现的基类和接口的属性的方法

CS0103 dlibdotnet和www.example.com facerect不在上下文中

不仅仅是一个简单的自定义按钮

如何使用C#Interop EXCEL创建度量衡

在具有主构造函数的类中初始化属性时出现警告

Nuget包Serilog.Sinks.AwsCloudwatch引发TypeLoadExceptions,因为父类型是密封的

在此系统上已禁用获取正在运行的脚本.&在ASP.NET Core Web API中

Linux Docker上的.NET6在某个时间抛出后,在加密操作期间发生System.Security.Cryptography.CryptographicException:错误

当我将`ConcurentDictionary`转换为`IDictionary`时,出现了奇怪的并发行为

如何在GRPC代码First服务的返回类型上使用多态性?

为什么C#/MSBuild会自发地为不同的项目使用不同的输出路径?

此异步方法在重写方法中缺少等待运算符警告

try 创建一个C#程序,该程序使用自动实现的属性、覆盖ToString()并使用子类

如何在C#.NET桌面应用程序中动态更改焦点工具上的后退 colored颜色

如何在Xamarin.Forms中检索PanGesture事件的位置?

获取应用程序版本信息时出现奇怪信息

与Visual Studio 2022中的.NET框架相比,如何在.NET Core 6中获取错误输出的窗口句柄

为什么我不能在固定语句中使用外部函数?