首页 > 解决方案 > 是否可以防止在 C# WinForms 对话框中创建业务对象?

问题描述

要创建/编辑我的业务类的实例,例如,

class Person
{
  public string Name {get;set;}
  public DateTime DateOfBirth {get;set;}
}

我实现了一个用户控件

class PersonControl : UserControl
{
  //...
  public Person Person
  {
    get{...}
    set{...}
  }
} 

其中 get 和 set 使用 PersonControl 类的控件。然后我创建一个对话框,一个窗体,并在其中创建一个 PersonControl 类的实例_ctrlPerson。在我的对话框类中

  public Person Person
  {
    get{return this._ctrlPerson.Person;}
    set{this._ctrlPerson.Person = value;}
  }

烦人的是,VisualStudio 在资源中创建了一个业务类 Person 的实例,用一些值填充它,并用它的值初始化用户控件的控件。这些值通常为 null 或无意义,因此设计器视图不会显示,以及其他副作用。

这种行为是否已知?如何防止 VS 创建寄生实例?

我正在使用 VD 2017 企业版。

标签: c#visual-studio-2017user-controlsresources

解决方案


推荐阅读