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

时间:2019-06-10 13:05:12

标签: c# wpf xaml wpf-controls custom-controls

我有一个自定义的Calendar控件,该控件在选定的时间段内显示约会。

我想添加创建/编辑约会的功能。当我单击一天时,应会打开约会编辑对话框(字段,保存按钮,取消按钮)。

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

  1. 控件应该负责打开对话框,并且仅具有SaveCommandEditedAppointment属性。

  2. 还是应该仅向BeginEditCommand/DayClick event之类的用户公开命令/事件,而我控件的用户将不得不自己实现对话框(而不是仅实现Save命令)?我认为depends on

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

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

1 个答案:

答案 0 :(得分:1)

在不了解您的控件适合大型事物的情况下就不可能确切地说,但是对我来说,编辑和添加约会听起来像是应用程序的一部分,而不是简单的控件。

控件往往擅长于一件独特的事情,并且可以在许多不同的场景中重复使用,因此需要灵活。如果应用程序希望对约会编辑屏幕进行换肤,该怎么办?还是在完全不同的窗口中显示?还是允许一次编辑多个约会?

如果您想让消费者更轻松地使用它们,则可以随时创建另一个控件来编辑约会,这些约会可以免费使用,并且他们可以根据自己的喜好来调整约会。不过,老实说,这些东西似乎应该在应用程序中将它们实现为适当的MVVM,而不是自定义控件。