public void ValidateRowDeletion(DevExpress.Mvvm.Xpf.ValidateRowDeletionArgs args) { using (var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { var key = DetachedObjectsHelper.GetKey(args.Items.Single()); var item = unitOfWork.GetObjectByKey <XPOIssues.Issues.Issue>(key); unitOfWork.Delete(item); unitOfWork.CommitChanges(); } }
public void FetchRows(DevExpress.Mvvm.Xpf.FetchRowsAsyncArgs args) { args.Result = Task.Run <DevExpress.Xpf.Data.FetchRowsResult>(() => { using (var session = new DevExpress.Xpo.Session()) { var queryable = session.Query <XPOIssues.Issues.Issue>().SortBy(args.SortOrder, defaultUniqueSortPropertyName: nameof(XPOIssues.Issues.Issue.Oid)).Where(MakeFilterExpression((DevExpress.Data.Filtering.CriteriaOperator)args.Filter)); var items = queryable.Skip(args.Skip).Take(args.Take ?? 100).ToArray(); return(DetachedObjectsHelper.ConvertToDetachedObjects(items)); } }); }
public void ValidateRow(DevExpress.Mvvm.Xpf.RowValidationArgs args) { using (var unitOfWork = new DevExpress.Xpo.UnitOfWork()) { var item = args.IsNewItem ? new XPOIssues.Issues.Issue(unitOfWork) : unitOfWork.GetObjectByKey <XPOIssues.Issues.Issue>(DetachedObjectsHelper.GetKey(args.Item)); DetachedObjectsHelper.ApplyProperties(item, args.Item); unitOfWork.CommitChanges(); if (args.IsNewItem) { DetachedObjectsHelper.SetKey(args.Item, item.Oid); } } }
public MainWindow() { InitializeComponent(); using (var session = new Session()) { var classInfo = session.GetClassInfo <XPOIssues.Issues.Issue>(); var properties = classInfo.Members .Where(member => member.IsPublic && member.IsPersistent) .Select(member => member.Name) .ToArray(); _DetachedObjectsHelper = DetachedObjectsHelper <XPOIssues.Issues.Issue> .Create(classInfo.KeyProperty.Name, properties); } var source = new InfiniteAsyncSource { CustomProperties = _DetachedObjectsHelper.Properties, KeyProperty = nameof(XPOIssues.Issues.Issue.Oid) }; source.FetchRows += OnFetchRows; source.GetTotalSummaries += OnGetTotalSummaries; grid.ItemsSource = source; LoadLookupData(); }