プレゼンターは、インターフェイスを介してのみビューと通信する必要があります。
プレゼンターとビュー インターフェイスは、Windows アプリケーションが参照できるクラス ライブラリ プロジェクトに含めることができます。Windows アプリケーション プロジェクトで作成する具体的なビューは、適切なビュー インターフェイスを実装できます。
以下の簡単な例は、クラスがどのように相互作用するかを示しています。
ClassLibrary.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...
}
}