C#:获取客户列表并在两个视图上共享

C#:获取客户列表并在两个视图上共享,c#,winforms,user-controls,mvp,C#,Winforms,User Controls,Mvp,我在顶部菜单上显示了一个客户列表,其中每个客户名称都是一个菜单项。 现在,我希望在另一个菜单中有相同的(same=我不想从数据库重新加载数据)客户 两个菜单都位于两个不同的用户控件中。 在每个用户控件中,您都可以在客户菜单上执行操作。 您将如何设计两个菜单/UserControls/Presenter,以便只从数据库中获取一次customerList 我使用的是winforms MVP模式。完整的答案取决于如何从数据库获取数据,然后返回到用户控件。但由于您使用的是“演示者”,我怀疑您引用的是客户

我在顶部菜单上显示了一个客户列表,其中每个客户名称都是一个菜单项。 现在,我希望在另一个菜单中有相同的(same=我不想从数据库重新加载数据)客户

两个菜单都位于两个不同的用户控件中。 在每个用户控件中,您都可以在客户菜单上执行操作。 您将如何设计两个菜单/UserControls/Presenter,以便只从数据库中获取一次customerList


我使用的是winforms MVP模式。

完整的答案取决于如何从数据库获取数据,然后返回到用户控件。但由于您使用的是“演示者”,我怀疑您引用的是客户列表。您只需将该引用传递给两个UserControl中的每一个,这两个控件都可以访问完全相同的实例数据。

我不知道您以何种方式连接到数据库。如果您只是使用一个数据源直接连接到它,我在这方面帮不了您

否则,您可以将每个请求缓存放在数据访问层中,以便所有控件在请求时都从同一缓存中提取数据


有许多方法可以缓存数据库中的数据,这只是一个例子。

您可以一次性连接到数据库,并将该数据本地存储在dataset/datatable中,然后,您可以随时传递并访问它。

您可以在静态列表中加载CustomerList并共享此列表,这是一种缓存机制