编辑当前选择的属性
点击编辑
实现代码如下
代码
// Developer Express Code Central Example:
// How to edit the currently selected object in the Windows Forms LookupPropertyEditor
//
// This example illustrates the functionality described in the K18024 KB article. A
// separate v2010 vol 1 solution is also available.
//
// You can find sample updates and versions for different programming languages here:
// http://www.devexpress.com/example=E774
using System;
using DevExpress.ExpressApp;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;
using System.Drawing;
using DevExpress.Utils;
using DevExpress.ExpressApp.Win.Editors;
using DevExpress.ExpressApp.Model;
namespace WinSolution.Module.Win {
public class MyLookupPropertyEditor : LookupPropertyEditor {
public MyLookupPropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model) { }
protected override void SetupRepositoryItem(RepositoryItem item) {
base.SetupRepositoryItem(item);
((RepositoryItemLookupEdit)item).Init(DisplayFormat, this.Helper);
AppearanceObject appearance = new AppearanceObject();
appearance.Font=new Font(FontFamily.GenericSansSerif, 10F, FontStyle.Underline);
((RepositoryItemLookupEdit)item).Buttons.Add(new EditorButton(ButtonPredefines.Glyph, "Edit", -1, true, true, true, HorzAlignment.Default, null, new KeyShortcut(System.Windows.Forms.Keys.Enter), appearance, "Press this button to edit the object"));
((RepositoryItemLookupEdit)item).ButtonClick += new ButtonPressedEventHandler(MyLookupPropertyEditor_ButtonClick);
}
void MyLookupPropertyEditor_ButtonClick(object sender, ButtonPressedEventArgs e) {
if (!e.Button.IsDefaultButton) {
ObjectSpace objectSpace = Helper.Application.CreateObjectSpace();
object editedObject = null;
if (BindingHelper != null) {
editedObject = objectSpace.GetObject(BindingHelper.GetControlValue());
}
else if (sender is LookupEdit) {
editedObject = objectSpace.GetObject((sender as LookupEdit).EditValue);
}
if (editedObject != null) {
ShowViewParameters svp = new ShowViewParameters();
svp.CreatedView = Helper.Application.CreateDetailView(objectSpace, editedObject, true);
svp.TargetWindow = TargetWindow.Default;
svp.Context = TemplateContext.View;
svp.CreateAllControllers = true;
ShowViewSource svs = new ShowViewSource(Helper.Application.MainWindow, null);
Helper.Application.ShowViewStrategy.ShowView(svp, svs);
}
}
}
}
}
// How to edit the currently selected object in the Windows Forms LookupPropertyEditor
//
// This example illustrates the functionality described in the K18024 KB article. A
// separate v2010 vol 1 solution is also available.
//
// You can find sample updates and versions for different programming languages here:
// http://www.devexpress.com/example=E774
using System;
using DevExpress.ExpressApp;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;
using System.Drawing;
using DevExpress.Utils;
using DevExpress.ExpressApp.Win.Editors;
using DevExpress.ExpressApp.Model;
namespace WinSolution.Module.Win {
public class MyLookupPropertyEditor : LookupPropertyEditor {
public MyLookupPropertyEditor(Type objectType, IModelMemberViewItem model) : base(objectType, model) { }
protected override void SetupRepositoryItem(RepositoryItem item) {
base.SetupRepositoryItem(item);
((RepositoryItemLookupEdit)item).Init(DisplayFormat, this.Helper);
AppearanceObject appearance = new AppearanceObject();
appearance.Font=new Font(FontFamily.GenericSansSerif, 10F, FontStyle.Underline);
((RepositoryItemLookupEdit)item).Buttons.Add(new EditorButton(ButtonPredefines.Glyph, "Edit", -1, true, true, true, HorzAlignment.Default, null, new KeyShortcut(System.Windows.Forms.Keys.Enter), appearance, "Press this button to edit the object"));
((RepositoryItemLookupEdit)item).ButtonClick += new ButtonPressedEventHandler(MyLookupPropertyEditor_ButtonClick);
}
void MyLookupPropertyEditor_ButtonClick(object sender, ButtonPressedEventArgs e) {
if (!e.Button.IsDefaultButton) {
ObjectSpace objectSpace = Helper.Application.CreateObjectSpace();
object editedObject = null;
if (BindingHelper != null) {
editedObject = objectSpace.GetObject(BindingHelper.GetControlValue());
}
else if (sender is LookupEdit) {
editedObject = objectSpace.GetObject((sender as LookupEdit).EditValue);
}
if (editedObject != null) {
ShowViewParameters svp = new ShowViewParameters();
svp.CreatedView = Helper.Application.CreateDetailView(objectSpace, editedObject, true);
svp.TargetWindow = TargetWindow.Default;
svp.Context = TemplateContext.View;
svp.CreateAllControllers = true;
ShowViewSource svs = new ShowViewSource(Helper.Application.MainWindow, null);
Helper.Application.ShowViewStrategy.ShowView(svp, svs);
}
}
}
}
}
欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/