Tôi đang cố gắng sử dụng MVP trong WinForms và đang bối rối về cách xử lý tốt nhất sự phối hợp giữa các chế độ xem con.Sự phối hợp các quan điểm của trẻ được xử lý tốt nhất trong MVP như thế nào?
Ví dụ: tôi có chế độ xem gốc có hai chế độ xem con. Các sự kiện trên một chế độ xem con cần phải thực hiện hành động được thực hiện theo chế độ xem con thứ hai.
Chế độ xem gốc có nên kiểm soát trực tiếp điều này không? Có vẻ như tôi đang bỏ qua mẫu MVP bằng cách làm điều này.
Hoặc các chế độ xem con có nên coi nhau như tham số hàm tạo không? Trong trường hợp đó, khi một sự kiện được kích hoạt bởi chế độ xem con đầu tiên, chế độ xem con thứ hai sẽ nhận được sự kiện và sau đó thông báo cho người trình bày rằng có điều gì đó đã xảy ra? Người trình bày sau đó cần lấy dữ liệu từ khung nhìn con đầu tiên (mà nó thậm chí không biết) để nói cho đứa trẻ thứ 2 xem phải làm gì. Nó có vẻ phức tạp vì vậy tôi cảm thấy như tôi đang thiếu một cái gì đó.
Dưới đây là một số giả mã cho tình trạng này:
public class ParentView : UserControl, IParentView
{
private ChildViewOne childViewOne;
private ChildViewTwo childViewTwo;
private ParentViewPresenter presenter;
private RegisterEvents()
{
childViewOne.EventOccured += new EventHandler(HandleEvent);
}
private void HandleEvent()
{
childViewTwo.DoSomething();
}
}
"Sự kiện trên một chế độ xem trẻ em cần phải thực hiện hành động bằng chế độ xem con thứ hai". Chính xác những hành động diễn ra là gì? – SwDevMan81
Ví dụ: giả sử childViewOne là dòng thời gian và childViewTwo là video. Dòng thời gian cho thấy sự kiện TimeChanged và video cần phản hồi sự kiện đó bằng cách thay đổi khung hiện tại của video. – jameswelle