このサンプルを見つけましたが、Web用です。誰でもこのプロジェクトをチェックできますか。winforms(wpfなし)を使用して簡単なサンプルを追加します。
どうも
どんな問題に直面していましたか?とにかく、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();
}
}
必要な参照を追加すれば完了です。これは最善の方法ではないかもしれませんが、確かにこれを達成する方法です。
解決策はここにアップロードされます。
お役に立てれば。必要に応じて、お気軽にご相談ください。