在用户控制中访问主程序的数据源

时间:2013-06-04 08:48:29

标签: c# .net oop datagridview user-controls

我想编写一个使用多个选项卡的程序,每个选项卡都显示一个数据网格。所有网格的数据都存储在单个数据源中。除了colums / rows的数量和当然的值之外,每个选项卡看起来都应该相同。

所以我现在尝试将网格视图放入用户控件并创建.dll。如果添加了一个选项卡,我将用户控件放入其中 - 这已经有效。网格在虚拟模式下工作,如果创建了新的选项卡/网格,它会调用事件将数据加载到网格中。

现在我遇到的问题是,当数据源在我的主程序中时,网格和LoadData事件都在用户控件中。因此在用户控件中,数据源是未定义的。我认为这样可以,因为您不单独运行用户控件,一旦在主程序中使用它,数据源应该可用于LoadData事件。但是,在数据源未知的情况下,似乎无法生成.dll。

另一方面,我不想将数据源放入用户控件中,因为每次创建新选项卡时都会将其公开。

我希望你能给我一个暗示,实施它的最佳方法是什么。

非常感谢你!

1 个答案:

答案 0 :(得分:0)

我不知道你期望的答案(详细程度),但我认为这是一个非常好的例子:

  • 重用一个控件
  • 使用MVVM架构模式

我会尝试单独执行负责创建ViewModel的逻辑的类。控件(您的目的中的网格)将始终绑定到此ViewModel,并且此控件将在不同的视图中重用。取决于它的放置位置,如果有必要,可以添加一些额外的功能(装饰器设计模式)。如果您期望更详细(非概念)解决方案而不是抱歉。