您的演示者应该只通过接口与视图进行通信。
您的演示者和视图接口可以包含在 Windows 应用程序可以引用的类库项目中。您在 Windows 应用程序项目中创建的任何具体视图都可以实现适当的视图界面。
下面的简单示例显示了类如何交互。
类库.dll
public class Presenter {
// Repository class used to retrieve data
private IRepository<Item> repository = ...;
public void View { get; set; }
public void LoadData() {
// Retrieve your data from a repository or service
IEnumerable<Item> items = repository.find(...);
this.View.DisplayItems(items);
}
}
public interface IView {
void DisplayItems(IEnumerable<Item> items);
}
WindowsApplication.dll
public class ConcreteView : IView {
private Button btn
private Grid grid;
private Presenter presenter = new Presenter();
public ConcreteView() {
presenter.View = this;
btn.Click += (s, a) => presenter.LoadData();
}
public void DisplayItems(IEnumerable<Item> items) {
// enumerate the items and add them to your grid...
}
}