【问题标题】:Visual inheritance problem视觉继承问题
【发布时间】:2011-11-04 19:14:11
【问题描述】:

我已经构建了一个基本用户控件 BaseViewControl,它上面有一个 dataGridView 和一个 bindingSource。两者都有受保护的访问修饰符。 dataViewGrids 数据源指向基本表单 bindingSource。

然后我创建了一个 InheritedUserControl ApplicationUserView,当提示时我将它指向我的 UI 程序集。它在同一个程序集中继承了其他一些 arb UserControl,所以我手动将其更改为继承我的 BaseViewControl。

在 ApplicationUserView 的 bindingSource 上,我将 dataSource 属性设置为我的 ApplicationUser 域对象。然后,dataGridView 继续使用 DesignView 中我的 ApplicationUser 域类中的属性填充其列,正如预期的那样。

现在,在来自我的控制器对象的异步回调中,视图接收 IList,我设置了我的 bindingSource.DataSource = applicationUserList。

我已经确认回调被调用并且 applicationUserList 中有项目,但在运行时,网格不显示任何行。我怀疑这与这一切的视觉继承方面有关。

我已经看到 VS 会在您之前尝试修改继承项目的属性时从继承表单创建项目副本到继承表单,这具有类似的效果,但情况并非如此。

任何想法我做错了什么?

谢谢,HS

【问题讨论】:

  • 我只会发表评论,因为我的情况不同,但是有问题的控件是相同的。我也遇到了 DataGridView 的问题:adamhouldsworth.blogspot.com/2010/02/…
  • 我会检查设计器为继承和基本控件生成的文件。
  • 设计器文件似乎是正确的,基础控件声明了DataGridView和BindingSource,继承控件修改了它们的属性...
  • 我认为不需要它,但您是否尝试过调用 bindingSource.ResetBindings()?
  • 我实际上用 DevExpress 网格替换了 DataGridView,然后轰隆隆!事情开始奏效了……据我所知,大多数 .net 1 和 2 控件在视觉继承方面都存在问题和限制……

标签: c# winforms visual-inheritance


【解决方案1】:

请看一下这篇文章,它似乎解释了你遇到的问题,或者至少会给你更多信息:C# visually subclass datagridview control VS2005

【讨论】:

    猜你喜欢
    • 2011-12-10
    • 2011-08-13
    • 2011-04-29
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    相关资源
    最近更新 更多