using System.Threading.Tasks; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; namespace AntDesign { public partial class TreeNodeCheckbox : ComponentBase { /// /// 树控件本身 /// [CascadingParameter(Name = "Tree")] public Tree TreeComponent { get; set; } /// /// 当前节点 /// [CascadingParameter(Name = "SelfNode")] public TreeNode SelfNode { get; set; } protected ClassMapper ClassMapper { get; } = new ClassMapper(); private void SetClassMap() { ClassMapper.Clear().Add("ant-tree-checkbox") .If("ant-tree-checkbox-checked", () => SelfNode.Checked) .If("ant-tree-checkbox-indeterminate", () => SelfNode.Indeterminate) .If("ant-tree-checkbox-disabled", () => SelfNode.Disabled || SelfNode.DisableCheckbox) ; } protected override void OnInitialized() { SetClassMap(); base.OnInitialized(); } protected override void OnParametersSet() { SetClassMap(); base.OnParametersSet(); } [Parameter] public EventCallback OnCheckBoxClick { get; set; } private async Task OnClick(MouseEventArgs args) { if (OnCheckBoxClick.HasDelegate) await OnCheckBoxClick.InvokeAsync(args); } } }