private void ApplicationOnDetailViewCreated(object sender, DetailViewCreatedEventArgs e) { var strategy = ((WinShowViewStrategyBase)Application.ShowViewStrategy); var winWindow = strategy.Windows.FirstOrDefault(window => window.View != null && window.View.Model == e.View.Model); if (winWindow != null) { if (((IModelDetailViewCaching)e.View.Model).DetailViewCaching) { winWindow.View.CurrentObject = GetCurrentObject(e, winWindow); } } }
private object GetCurrentObject(DetailViewCreatedEventArgs e, WinWindow winWindow) { if (e.View.ObjectSpace.IsNewObject(e.View.CurrentObject)) { var newViewShortcut = e.View.CreateShortcut(); var temporaryObjectKey = newViewShortcut[ViewShortcut.TemporaryObjectKeyParamName]; var newObj = winWindow.View.ObjectSpace.CreateObject(winWindow.View.ObjectTypeInfo.Type); e.View.CurrentObject.Map(newObj, Flags.Public); CustomizeViewShortcut(e, winWindow, temporaryObjectKey); return(newObj); } return(winWindow.View.ObjectSpace.GetObject(e.View.CurrentObject)); }
private void ApplicationOnDetailViewCreated(object sender, DetailViewCreatedEventArgs e) { var strategy = ((WinShowViewStrategyBase)Application.ShowViewStrategy); foreach (var winWindow in strategy.Windows.Where(winWindow => !winWindow.View.IsValueNull())) { var view = winWindow.View; var shortcut = view.CreateShortcut(); var newViewShortCut = e.View.CreateShortcut(); shortcut.ObjectKey = newViewShortCut.ObjectKey; if (shortcut == newViewShortCut) { view.CurrentObject = view.ObjectSpace.GetObject(e.View.CurrentObject); } } }
private static void CustomizeViewShortcut(DetailViewCreatedEventArgs e, WinWindow winWindow, string temporaryObjectKey){ e.View.CustomizeViewShortcut += (o, args) =>{ var shortcut = args.ViewShortcut; if (shortcut.ContainsKey(ViewShortcut.IsNewObject)){ shortcut.Remove(ViewShortcut.IsNewObject); } }; winWindow.View.CustomizeViewShortcut += (o, args) =>{ var shortcut = args.ViewShortcut; if (shortcut.ContainsKey(ViewShortcut.TemporaryObjectKeyParamName)) shortcut[ViewShortcut.TemporaryObjectKeyParamName] = temporaryObjectKey; if (shortcut.ContainsKey(ViewShortcut.IsNewObject)){ shortcut.Remove(ViewShortcut.IsNewObject); } }; }
private void ApplicationOnDetailViewCreated(object sender, DetailViewCreatedEventArgs e){ var strategy = ((WinShowViewStrategyBase) Application.ShowViewStrategy); var winWindow = strategy.Windows.FirstOrDefault(window => window.View!=null&&window.View.Model == e.View.Model); if (winWindow != null){ if (e.View.ObjectSpace.IsNewObject(e.View.CurrentObject)){ var newViewShortcut = e.View.CreateShortcut(); var temporaryObjectKey = newViewShortcut[ViewShortcut.TemporaryObjectKeyParamName]; var newObj = winWindow.View.ObjectSpace.CreateObject(winWindow.View.ObjectTypeInfo.Type); e.View.CurrentObject.Map(newObj,Flags.Public); CustomizeViewShortcut(e, winWindow, temporaryObjectKey); winWindow.View.CurrentObject = newObj; } else{ winWindow.View.CurrentObject = winWindow.View.ObjectSpace.GetObject(e.View.CurrentObject); } } }
private void CustomizeViewShortcut(DetailViewCreatedEventArgs e, WinWindow winWindow, string temporaryObjectKey) { e.View.CustomizeViewShortcut += (o, args) => { var shortcut = args.ViewShortcut; if (shortcut.ContainsKey(ViewShortcut.IsNewObject)) { shortcut.Remove(ViewShortcut.IsNewObject); } }; winWindow.View.CustomizeViewShortcut += (o, args) => { var shortcut = args.ViewShortcut; if (shortcut.ContainsKey(ViewShortcut.TemporaryObjectKeyParamName)) { shortcut[ViewShortcut.TemporaryObjectKeyParamName] = temporaryObjectKey; } if (shortcut.ContainsKey(ViewShortcut.IsNewObject)) { shortcut.Remove(ViewShortcut.IsNewObject); } }; }
private void ApplicationOnDetailViewCreated(object sender, DetailViewCreatedEventArgs viewCreatedEventArgs) { viewCreatedEventArgs.View.Disposing += ViewOnDisposing; }