2013-11-20 110 views
0

使用c# - WinForms,.net Framework 4.5,VS 2012在类之间管理数据的最佳方式是什么?

尝试使用某个实体创建小应用程序。 我创建单独的类我的实体,并把一些简单的代码中:从主窗体

public class Car 
{ 
    public string Color {get; set;} 
    public string Make { get; set; } 
    public string CarModel { get; set; } 
} 

然后,我创建的一些标本类Car(创建可通过点击主表单按钮geted,点击新的形式后如果输入信息并点击OK按钮,将打开3个文本框 - 必须创建新的Car样本并返回到主窗体)。

为此,我尝试使用下面的代码:

public Car myCar = new Car(); 
    private void buttonAdd_Click(object sender, EventArgs e) 
    { 
     myCar.Color = textBoxColor.Text; 
     myCar.Make = textBoxMake.Text; 
     myCar.CarModel = textBoxModel.Text; 
     this.DialogResult = DialogResult.OK; 
     this.Close(); 
     MessageBox.Show("Added"); 
     this.Close(); 
    } 

对于来自新形式我使用公共领域public Car myCar = new Car();主要形式的移动数据,但这不是要做到这一点的最佳方式,由于使用public字段。

另一种方式,我发现 - 在主窗体创建下一个方法

static List<Car> carInStock = null; 
    public static void myCar(string color, string make, string model) 
    { 
     Car myCar = new Car 
     { 
      Color = color, 
      CarModel = model, 
      Make = make 
     }; 
     MainForm.carInStock.Add(myNewCar); 
    } 

和按钮可以用这样的方法:

private void buttonAdd_Click(object sender, EventArgs e) 
    { 
     MainForm.myCar(textBoxColor.Text, 
     textBoxMake.Text, 
     textBoxModel.Text); 
     MessageBox.Show("Added"); 
     this.Close(); 
    } 

但认为瓦里安还没有HTE最好优先。

问题:什么是从一种形式移动创建的实体(在Car这种情况下,实体,表示为myCar)到另一个的最佳方式?

+1

请定义“最好”。大多数可读?快?内存高效? –

+1

可能是汽车存储库。查找依赖注入。 – Romoku

+0

意味着“最好”最保护的方式和快速 – gbk

回答

2

对于这种GUI应用程序,我建议你遵循MVC或MVP模式。类车是模型,Windows窗体是视图,视图不包含模型的实例,视图通过控制器或演示者更新。

你可以找到更多关于MVC/MVP的信息here

+0

如果是诚实的 - 从来没有读过'模式'(正如我写的abowe),但看起来像它非常有用的东西 – gbk

+2

请学习MVP - 它会让你WinForms的生活要容易得多。 :) – IAbstract

+0

@Matt - 真正有趣和有益的链接 – gbk

相关问题