在 WPF 中,我会使用 MVVM 模式来解决这个问题:UI 不会直接使用 XPO 对象,而是 ViewModel 对象会公开必要的属性,以便可以轻松地在绑定场景中使用它们。MVVM 是特定于 WPF 的,但我相信 MVP 模式非常相似,可以很容易地在 Windows 窗体中使用。因此,您可以创建一个 Presenter 对象,作为 UI 和 XPO 对象之间的适配器:
public class DocumentPresenter
{
private Document _document;
public DocumentPresenter(Document document)
{
_document = document;
}
public string Title
{
get { return _document.Title; };
set { _document.Title = value; };
}
public string Extension
{
get { return _document.Extension; };
set { _document.Extension = value; };
}
public byte[] Data
{
get { return _document.Data; };
set { _document.Data = value; };
}
public int ImageIndex
{
get
{
// some logic to return the image index...
}
}
}
现在您只需将 设置DataSource
为DocumentPresenter
对象集合,并将 设置ImageIndexMember
为“ImageIndex”
免责声明:我从未真正使用过 MVP 模式,只使用过 MVVM,所以我可能弄错了......无论如何,我猜你明白了;)