编辑当前选择的属性
点击编辑
实现代码如下
代码
//
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);
}
}
}
}
}