-1

このサンプルを見つけましたが、Web用です。誰でもこのプロジェクトをチェックできますか。winforms(wpfなし)を使用して簡単なサンプルを追加します。

ソースコード

どうも

4

1 に答える 1

2

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

まず、プレゼンターがいます。これは、コントローラーとほぼ同じように作業単位を処理します。

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);
    }
}

次に、インターフェイスとそのインターフェイスを実装するフォームがあります

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();
    }
}

必要な参照を追加すれば完了です。これは最善の方法ではないかもしれませんが、確かにこれを達成する方法です。

解決策はここにアップロードされます。

お役に立てれば。必要に応じて、お気軽にご相談ください。

于 2012-03-29T11:59:41.907 に答える