XAF 如何扩展应用程序模型<二> 编辑ListView自动保存
2011-01-03 14:40
585 查看
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.Persistent.Base;
using DevExpress.ExpressApp.Model;
using DevExpress.ExpressApp.Win.SystemModule;
namespace XafExtendTest.Module.SystemModule
{
public interface IModelClassAutoCommitListView : IModelNode
{
[Category("MyCustomProperty")]
[Description("Control if change on editable listview will be autocommited")]
bool AutoCommitListview { get; set; }
}
[ModelInterfaceImplementor(typeof(IModelClassAutoCommitListView),"ModelClass")]
public interface IModelListViewAutoCommitListView : IModelClassAutoCommitListView
{
}
public class AutoCommitListViewController : ViewController<ListView>,IModelExtender
{
protected override void OnViewControllersActivated()
{
base.OnActivated();
var winDetailViewController = Frame.GetController<WinDetailViewController>();
if (winDetailViewController != null && ((IModelListViewAutoCommitListView)View.Model).AutoCommitListview)
{
winDetailViewController.AutoCommitListView = true;
View.QueryCanChangeCurrentObject += View_QueryCanChangeCurrentObject;
}
}
void View_QueryCanChangeCurrentObject(object sender, CancelEventArgs e)
{
if(Frame.GetController<WinDetailViewController>().SuppressConfirmation)
ObjectSpace.CommitChanges();
}
protected override void OnDeactivated()
{
base.OnDeactivated();
var winDetailViewController = Frame.GetController<WinDetailViewController>();
if (winDetailViewController != null && ((IModelListViewAutoCommitListView)View.Model).AutoCommitListview)
{
winDetailViewController.AutoCommitListView = true;
View.QueryCanChangeCurrentObject -= View_QueryCanChangeCurrentObject;
}
}
void IModelExtender.ExtendModelInterfaces(ModelInterfaceExtenders extenders)
{
extenders.Add<IModelClass, IModelClassAutoCommitListView>();
extenders.Add<IModelListView, IModelListViewAutoCommitListView>();
}
}
}
欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/
相关文章推荐
- XAF 如何扩展应用程序模型(How to: Extend the Application Model )<一> ListView显示页脚信息
- EF CodeFirst 如何通过配置自动创建数据库<当模型改变时>
- 大数据之Hive之扩展项目Youtube案例<二>
- 潜移默化学会WPF(转载篇<二>)--退出应用程序
- 如何使<pre>元素里的内容自动换行
- 如何让html 标签<textarea>文本域 在Opera浏览器下自动换行
- 如何实现IEnumerable<T>和IEnumerator接口,一个ASP.NET MVC日志模型的实现
- IE10打开网页后,自动设置浏览器模式为“IE10兼容性视图”,我添加了 <meta http-equiv="X-UA-Compatible" content="IE=8">只修改了文档模式,请问如何
- 我的Android进阶之旅------>Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范...
- 如何删除strut2校验后<s:fielderror>在jsp页面输出时的小黑点和自动换行?
- 黄聪:wordpress如何防止发布文章时候自动清除<P>、<br>换行标签
- 在<table>或<div>中如何让传入的文本自动换行
- 可编辑子项的ListCtrl<二>
- XAF 写一个正式的CRM应用程序<DC翻译博客七>
- 《ASP.NET1200例》ListView 控件与DataPager控件的结合<二>
- javascript中如何自动给表<table>添加行和列
- struts国际化默认保存在request中,一般通过过滤器修改让其保存在session;这介绍如何从<s:text>源码中修改local
- 如何删除strut2校验后<s:fielderror>在jsp页面输出时的小黑点和自动换行?
- 读<<CLR via C#>>总结(1) dotNet平台下源代码是如何生成应用程序的
- 我的Android进阶之旅------>Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范围内?