如何解决如何在 Blazor 中禁用组件层次结构?
我想实现与 WPF 应用程序类似的效果,其中您有一个 XAML 层次结构,禁用其中一个祖先也会使其所有子代也被禁用。
我在 Blazor 组件中找不到任何类似的方法。
我试图研究级联参数和值,但我不确定我是否在正确的轨道上。
假设我有一个如下所示的组件层次结构:
<PanelContainer Title="Upload log file">
<ParagraphRow ParagraphType="ParagraphType.Paragraph1" Label="Some test row">
<EditBox Text="Some test text" />
</ParagraphRow>
<ParagraphRow ParagraphType="ParagraphType.Paragraph2" Label="Some fancy test row disabled" IsEnabled="false">
<EditBox Text="Some fancy test text" />
</ParagraphRow>
<ParagraphRow ParagraphType="ParagraphType.Paragraph3" Label="Some other test row">
<EditBox Text="Some disabled test text" IsEnabled="false" />
</ParagraphRow>
</PanelContainer>
这里的所有组件都继承自一个基本组件类,其中 IsEnabled
属性被声明为公共属性。
每个组件应根据其 IsEnabled
值表现不同。
例如:EditBox
应该禁用内部输入 HTML
标签,将 CSS 类附加到包装器标签等。
如果我只是禁用 EditBox
本身,它就像一个魅力,没什么特别的(第三个 ParagraphRow
)。
我想在第二个 ParagraphRow
中获得相同的结果,其中行本身已被禁用。在这里,我想对 row
组件(标签的 CSS 类、验证逻辑更改等)进行一些禁用逻辑,但我也希望它的子项({{ 1}} 在这种情况下)也会以某种方式“通知”有关被禁用的信息,因此它可以自行更新为禁用状态。
我更喜欢一种解决方案,我不必在所有地方都抛出绑定和级联值 EditBox
,因此它可以“正常工作”开箱即用。
在 Blazor 架构中甚至可能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。