Professional Documents
Culture Documents
25-May-15
Log In
Products
SUPPORT CENTER
Buy
Support
Tickets
My Account
Examples
About Us
Localization
FAQ
Training Events
How to enable in-place editing in the WinForms tree List View (TreeListEditor)
ID:
E443
Mo dified O n :
3/2/2015 9:00:27 PM
This example shows how to implement a custom ViewController that gets access to the TreeList control and makes it editable according to
the XtraTreeList documentation:
WinForms Controls > Controls > Tree List > Feature Center > Data Editing
TreeListOptionsBehavior.Editable Property
TreeList.ShowingEditor Event
TreeList.CellValueChanged Event
Take special note that special handling is required for the correct operation of editors for reference properties (e.g., a lookup filtering
functionality requires obtaining the currently selected record).
This is not a complete solution and you will need to modify and test this example code further in other scenarios according to your business
requirements. For instance, if you require supporting ConditionalAppearance rules, consider using the code from the Q479878 ticket. If you
require supporting member-level security permissions, consider extending this example by analogy with
the DevExpress.ExpressApp.Win.SystemModule.GridListEditorMemberLevelSecurityController class for GridListEditor.
Tech n o lo gy:
.NET
Platfo rm:
Framew o rks (XAF & XPO )
Pro du ct:
eXp ressAp p Framew o rk
Downloads
Examp le
Examp le Ru n n er
See also:
How to enable in-place editing in the ASP.NET tree List View (ASPxTreeListEditor)
ListEditors.TreeList - Make it possible to edit data directly in the tree list (inplace/inline edit)
TreeListInplaceEditViewController.cs
C#
Leave a Comment
using
using
using
using
using
using
using
using
using
using
System;
DevExpress.Xpo;
DevExpress.ExpressApp;
DevExpress.XtraTreeList;
DevExpress.ExpressApp.DC;
DevExpress.ExpressApp.Model;
DevExpress.ExpressApp.Win.Core;
DevExpress.XtraEditors.Repository;
DevExpress.ExpressApp.Win.Controls;
DevExpress.ExpressApp.TreeListEditors.Win;
namespace WinSolution.Module.Win {
public class TreeListInplaceEditViewController : ViewController<ListView> {
private ObjectTreeList treeList;
protected override void OnViewControlsCreated() {
base.OnViewControlsCreated();
TreeListEditor treeListEditor = View.Editor as TreeListEditor;
if (treeListEditor != null) {
treeList = (ObjectTreeList)treeListEditor.TreeList;
if (treeListEditor.AllowEdit) {
treeList.OptionsBehavior.Editable = true;
foreach (RepositoryItem ri in treeList.RepositoryItems)
ri.ReadOnly = false;
foreach (TreeListColumnWrapper columnWrapper in treeListEditor.Columns) {
IModelColumn modelColumn = View.Model.Columns[columnWrapper.PropertyName];
if (modelColumn != null)
columnWrapper.Column.OptionsColumn.AllowEdit = modelColumn.AllowEdit;
}
treeList.CellValueChanged += treeList_CellValueChanged;
treeList.ShownEditor += treeList_ShownEditor;
treeList.OptionsBehavior.ImmediateEditor = true;
}
}
}
protected override void OnDeactivated() {
if (treeList != null) {
treeList.CellValueChanged -= treeList_CellValueChanged;
treeList.ShownEditor -= treeList_ShownEditor;
}
base.OnDeactivated();
}
private void treeList_ShownEditor(object sender, EventArgs e) {
IGridInplaceEdit activeEditor = treeList.ActiveEditor as IGridInplaceEdit;
if (activeEditor != null && treeList.FocusedObject is IXPSimpleObject) {
activeEditor.GridEditingObject = treeList.FocusedObject;
}
}
private void treeList_CellValueChanged(object sender, CellValueChangedEventArgs e) {
object newValue = e.Value;
if (e.Value is IXPSimpleObject)
newValue = ObjectSpace.GetObject(e.Value);
object focusedObject = treeList.FocusedObject;
if (focusedObject != null) {
IMemberInfo focusedColumnMemberInfo = ObjectSpace.TypesInfo.FindTypeInfo(focusedObject.GetType()).FindMember(e.Column.FieldName);
if (focusedColumnMemberInfo != null)
focusedColumnMemberInfo.SetValue(focusedObject, Convert.ChangeType(newValue, focusedColumnMemberInfo.MemberType));
}
}
}
}
https://www.devexpress.com/Support/Center/Example/Details/E443
1/2
E443 - How to enable in-place editing in the WinForms tree List View (TreeListEditor) | DevExpress Support Center
DEVEXPRESS
About Us
News
Our Awards
Upcoming Events
User Comments
Case Studies
Reviews and Publications
Licensing
Purchasing
MVP Program
Contact Us
Logos
.NET CONTROLS
WinForms
ASP.NET
MVC
WPF
Silverlight
Windows 8 XAML
CROSS PLATFORM
Reporting
Document Automation
25-May-15
MOBILE
DevExtreme Mobile
HTML5 JS WIDGETS
DevExtreme Web
ENTERPRISE TOOLS
Report Server
Analytics Dashboard
iOS 7
DataExplorer
FRAMEWORKS
eXpressApp Framework
CODE-DEBUG-REFACTOR
CodeRush for Visual Studio
SUPPORT
Search the Knowledge Base
My Questions
Code Examples
Getting Started
Demos
Documentation
Blogs
Training
Webinars
Current Version/Build
Version History
FOLLOW US
If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383
https://www.devexpress.com/Support/Center/Example/Details/E443
2/2