【发布时间】:2013-12-05 06:53:16
【问题描述】:
我尝试在 WinForms 应用程序中实现 ModelViewPresenter(MVP) 模式。我有一个带有按钮的主窗体,当我单击此按钮时,会显示一个新窗体。遵循 MVP 模式的最佳方法是什么?我想,我应该从我的演示者那里打开第二个表单,这样视图就不会知道其他视图的任何信息。但我不确定。我的应用程序只有三个对话框。最好的方法是什么?
代码
private void LoadAndShowMasterTrackForm()
{
if (GvClaims.SelectedRowsCount < 1)
return;
// Create an empty list.
var rowsToUpdate = new List<TrackData>();
// Add the selected rows to the list.
for (int i = 0; i < GvClaims.SelectedRowsCount; i++)
{
if (GvClaims.GetSelectedRows()[i] >= 0)
{
var track = GvClaims.GetRow(GvClaims.GetSelectedRows()[i]) as TrackData;
if (track != null)
rowsToUpdate.Add(track);
}
}
using (var uow = new UnitOfWork())
{
try
{
GvClaims.BeginUpdate();
var frmSynonyms = new MasterTrackDialog { DataSourceMainGridView = rowsToUpdate, DataSource = rowsToUpdate, SessionUow = uow };
var result = frmSynonyms.ShowDialog(this);
if (result == DialogResult.Cancel)
uow.RollbackTransaction();
}
catch (Exception ex)
{
uow.RollbackTransaction();
Logger.Error(ex.Message, ex);
}
finally
{
GcClaims.RefreshDataSource();
GvClaims.EndUpdate();
}
}
}
谢谢!
【问题讨论】:
-
请显示一些代码。