【发布时间】:2012-08-03 14:06:05
【问题描述】:
假设我有一个复合控件,其中有一个 ListBox 控件,其中列出了员工,例如,另一个控件包含多个 TextBox 控件,其中包含员工的详细信息。
当从 ListBox 控件中选择一个员工时,我需要将一个 Employee 对象传递给“详细”控件,然后将每个 TextBox 控件的 Text 属性分配给它们与 Employee 对象的相关属性。
我有两种解决方案可以将 Employee 对象传递给“详细信息”控件,但我不确定哪个是最好的。
解决方案1 :在“详细信息”控制中公开员工属性 em>,因此选择员工时,我可以执行decondontrol.employee = selectedEmployee。
解决方案 2:在主控件中公开一个事件,并在选择员工时触发它。 “详细信息”控件将订阅该事件并通过事件的 eventargs 接收 Employee 对象。
我知道这两种方法都可以正常工作。我只是不确定什么是最好用的。
有人说您应该使用自定义事件在控件之间传递数据,这是一种最好的松散耦合方法。
有人说实现自定义事件需要更多时间,因为您必须创建它们、向其中添加属性等,因此使用公开的属性更快更简单。
你有什么建议?
【问题讨论】: