自定义控件设计——打开编辑对话框职责

Custom control design - opening edit dialog responsibility

我有一个自定义日历控件,它显示选定时间段内的约会。

我想添加 create/edit 约会功能。当我点击一天时,约会编辑对话框(字段、保存按钮、取消按钮)应该打开。

谁应该负责打开编辑对话框?

  1. 控件是否应该负责打开对话框并且只有SaveCommandEditedAppointment属性。

  2. 或者它应该像 BeginEditCommand/DayClick event 这样的用户公开 commands/events 并且我的控件的用户必须自己实现对话框(而不是仅仅实现保存命令)?我觉得DataGrid works that way

两种解决方案都可以,但哪个更好?

这是我在 WPF 中的第一个自定义控件,请原谅我的菜鸟问题。

如果不了解您的控件在事物的宏伟计划中的位置,就不可能肯定地说,但对我来说,编辑和添加约会听起来像是应用程序的一部分,而不是一个简单的控件。

控件往往擅长于一件不同的事情,并且可以在许多不同的场景中重复使用,因此需要具有灵活性。如果应用程序想要以不同的方式设置约会编辑屏幕的外观怎么办?或者以完全不同的方式显示它 window?或者允许一次编辑多个约会?

您总是可以创建另一个控件来编辑约会,如果您想让消费者轻松使用它们,它们可以免费使用,并且他们可以在他们认为合适的时候使用它。老实说,这些东西感觉应该在应用程序中作为适当的 MVVM 来实现,而不是作为自定义控件。