Stu*_*urm 1 binding blazor matblazor
我正在尝试制作一个按钮,如果某个条件为假,该按钮将被禁用。对于常规按钮,这有效:
<button @disabled="!IsReady">Click me</button>
@code
{
public bool IsReady { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 MatBlazor 库,其MatButton版本为button:
<MatButton Disabled="@!IsReady">Click me</MatButton>
Run Code Online (Sandbox Code Playgroud)
后者不起作用:它给出以下错误:
组件属性不支持复杂内容(混合 C# 和标记)
在好的 WPF 中,我们可能会在绑定中使用转换器,因此绑定的布尔值是反转的。这是 MatBlazor 的限制吗?
我看到的快速解决方案是执行以下操作:
<MatButton Disabled="@IsNotReady">Click me</MatButton>
@code
{
public bool IsReady { get; set; }
public bool IsNotReady => !IsReady;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
解决方案最终非常简单:您只需要用括号将 C# 代码括起来:
<MatButton Disabled="@(!IsReady)">Click me</MatButton>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |