如何获取类库中定义的CascadingParameter?DxScheduler组件相关问题
DxScheduler中ISchedulerViewOwner级联参数为null的解决办法
为啥会拿到null?
ISchedulerViewOwner这个级联参数不是所有组件都能获取到,它仅在DxScheduler的内置编辑表单(比如DxSchedulerAppointmentForm)或者直接嵌套在DxScheduler视图组件内部的子组件中,才会被自动提供。你的自定义组件如果不在这个层级范围内,自然会拿到null。
怎么正确获取?
- 调整组件层级:把你的自定义组件放到DxScheduler的视图内部,比如直接作为DxScheduler的子组件,或者嵌套在DxSchedulerAppointmentForm这类内置表单组件中。
- 手动传递级联参数:如果必须在外部组件调用,需要在父组件中先获取ISchedulerViewOwner实例,再通过CascadingValue传递给你的自定义组件:
// 父组件代码 @inject ISchedulerViewOwner SchedulerViewOwner <CascadingValue Value="SchedulerViewOwner"> <你的自定义组件 /> </CascadingValue> - 换方式触发表单验证:如果只是需要调用表单验证,不一定非要依赖ISchedulerViewOwner。可以直接获取EditForm实例调用Validate方法:
// 自定义组件中引用EditForm @ref="EditFormRef" private EditForm EditFormRef { get; set; } // 触发验证的方法 private void ValidateForm() { EditFormRef.Validate(); }
额外提醒
- 如果是开发自定义预约表单,直接继承DxSchedulerAppointmentFormBase即可,它会自动处理级联参数的传递,无需手动声明。
- 优先选择调整组件层级的方案,这是最省心且不易出问题的方式,能避免手动传递带来的额外维护成本。
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

