DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
先决条件
平台:
- Frameworks (XAF & XPO)
- WinForms
产品:
- eXpress Persistent Objects
这些新的只读服务器模式组件是
XPServerCollectionSource/XPInstantFeedbackSource和XPView 的混合,可与DevExpress Grid控件一起使用。
它们提供以下内容:
- 能以较低的内存使用量处理大型数据源(不会加载整个持久对象实例)。
- 能自定义SELECT语句并排除未使用的数据列。
- 能在根查询中包括引用属性数据,以避免1 + N问题。
- 能包含使用ServerViewProperty在服务器端计算的自定义(虚拟)属性。
在将这些组件用作网格的数据源之前,请按以下方式配置它们:
1. 在代码或组件设计器中设置ObjectType和Properties,ServerViewProperty支持表达式中的持久性或别名属性。
C#
xpServerModeView1.ObjectType = typeof(Order);
xpInstantFeedbackView1.ObjectType = typeof(Order);
var viewProperties = new ServerViewProperty[] {
new ServerViewProperty(\"Oid\", SortDirection.Ascending, \"[Oid]\"),
new ServerViewProperty(\"OrderDate\", SortDirection.None, \"[OrderDate]\"),
new ServerViewProperty(\"Customer\", SortDirection.None, \"[Customer.ContactName]\"),
new ServerViewProperty(\"ProductName\", SortDirection.None, \"[ProductName]\"),
new ServerViewProperty(\"Price\", SortDirection.None, \"[Price]\"),
new ServerViewProperty(\"Quantity\", SortDirection.None, \"[Quantity]\"),
new ServerViewProperty(\"TotalPrice\", SortDirection.None, \"[Quantity] * [Price]\"),
new ServerViewProperty(\"Tax\", SortDirection.None, \"[Quantity] * [Price] * 0.13\")
};
xpServerModeView1.Properties.AddRange(viewProperties);
xpInstantFeedbackView1.Properties.AddRange(viewProperties);
2. 处理ResolveSession事件来提供一个Session,以从数据存储中检索对象。
C#
session = new Session(XpoDefault.DataLayer);
xpServerModeView1.ResolveSession += (s, e) => {
e.Session = session;
};
xpInstantFeedbackView1.ResolveSession += (s, e) => {
e.Session = session;
};
3. 对于XPInstantFeedbackView,可以选择处理DismissSession事件以手动处理在ResolveSession事件处理程序中创建的Session。
C#
xpInstantFeedbackView1.DismissSession += (s, e) => {
IDisposable session = e.Session as IDisposable;
if (session != null) {
session.Dispose();
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。