-1

我找到了这个示例,但它是用于网络的。任何人都可以检查这个项目。并使用 winforms(no wpf) 添加一个简单的示例。

源代码

谢谢

4

1 回答 1

2

你遇到了什么样的问题?无论如何,我已经制作了如何在 WinForm 中实现这一点的示例(但基本)结构。我已经使用了某种 Model View Presenter 模式。

首先,我们有一个演示者,它处理工作单元的方式几乎与控制器的处理方式相似

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 回答