您的演示者只能通過接口與視圖進行通信。
您的演示者和視圖界面可以包含在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...
}
}
#Benjamin大風感謝解釋,但我很新格局。你能否給我提供任何例子,比如如何使用MVP模式點擊加載按鈕時將數據加載到網格中。 –
#本傑明大風謝謝它幫助了我。 –