答えて

2

?とにかく、WinFormでこれを実現する方法のサンプル(まだ基本的な)構造を作りました。モデルビューのプレゼンターパターンを使っています。

我々は、ほぼ同様の作業単位を扱うことになるプレゼンタ、コントローラは、その後、我々は、インターフェイスと

public interface IEmployeeFormView 
{ 
    void PopulateData(string data); 
} 

public partial class EmployeeForm : Form, IEmployeeFormView 
{ 
    private readonly EmployeePresenter _presenter; 

    public EmployeeForm() 
    { 
     InitializeComponent(); 
     _presenter = new EmployeePresenter(this); 
    } 

    #region IEmployeeFormView Members 

    public void PopulateData(string data) 
    { 
     txtName.Text = data; //txtName is a textbox on form 
    } 

    #endregion 

    private void btnGet_Click(object sender, EventArgs e) 
    { 
     _presenter.GetData(); 
    } 
} 

そのインタフェースを実装する形態を

internal class EmployeePresenter 
{ 
    private readonly IEmployeeFormView _employeeFormView; 
    private readonly IUnitOfWork _unitOfWork; 

    public EmployeePresenter(IEmployeeFormView view) 
    { 
     _employeeFormView = view; 
     _unitOfWork = new SqlUnitOfWork(); 
    } 

    internal void GetData() 
    { 
     var id = 1; //parameter 
     var employee = _unitOfWork.Employees.Single(e => e.Id == id); 
     _employeeFormView.PopulateData(employee.Name); 
    } 
} 

を持たない方法を持ってまず必要な参照を追加すると完了です。これは最良の方法ではないかもしれませんが、確かにこれを達成する方法です。

ソリューションはアップロードhereです。

これが役に立ちます。必要であれば自由に話し合ってください。

+0

これは私の知る限りではありません。この2つのパターンを使ってサンプルをアップロードできますか?そして、リポジトリを作成し、mvpパターンなしでフォームをバインドしてください。 – user1018104

+0

大丈夫です。私はプロジェクトにsimpleFormを作成し、[ここ](http://www.box。 COM/S/f301bfca099c082d059f) – Adil

+0

こんにちは再び、 私がvb.netにこのプロジェクトを変換しているが、私はプロジェクトを実行すると、次のエラーが表示されます。 マッピングおよびメタデータ情報は、EntityType「EmployeeDomain.Employee」が見つかりませんでした。 – user1018104

関連する問題