假设我有一个复合控件,其中有一个 ListBox 控件,其中列出了员工,例如,另一个控件包含多个 TextBox 控件,其中包含员工的详细信息。
当从 ListBox 控件中选择一个员工时,我需要将一个 Employee 对象传递给“详细”控件,然后将每个 TextBox 控件的 Text 属性分配给它们与 Employee 对象的相关属性。
我有两个解决方案可以将 Employee 对象传递给“详细信息”控件,但我不确定哪个是最好的。
Solution 1 : Expose a Employee property in the "detail" control so when an employee is selected, I could do detailControl.Employee = selectedEmployee.
解决方案2:在主控件中公开一个事件,并在选择员工时触发它。“详细信息”控件将订阅该事件并通过事件的 eventargs 接收 Employee 对象。
我知道这两种方法都可以正常工作。我只是不确定最好使用什么。
有人说您应该使用自定义事件在控件之间传递数据,这是一种最好的松散耦合方法。
有人说实现自定义事件需要更多时间,因为您必须创建它们,向其中添加属性等,因此使用公开属性更快更简单。
你有什么建议?