private void InitializeExpander(EditableExpander editableExpander) { var accessManagerBinding = new Binding(); accessManagerBinding.Source = this; accessManagerBinding.Path = new PropertyPath(PropertyUtil.ExtractPropertyName(() => AccessControlManager)); editableExpander.SetBinding(SecureControl.AccessControlManagerProperty, accessManagerBinding); if (SaveCommand != null) { var saveBinding = new Binding(); saveBinding.Source = this; saveBinding.Path = new PropertyPath(PropertyUtil.ExtractPropertyName(() => SaveCommand)); editableExpander.SetBinding(EditableExpander.SaveCommandProperty, saveBinding); } if (CancelCommand != null) { var cancelBinding = new Binding(); cancelBinding.Source = this; cancelBinding.Path = new PropertyPath(PropertyUtil.ExtractPropertyName(() => CancelCommand)); editableExpander.SetBinding(EditableExpander.CancelCommandProperty, cancelBinding); } if (Expanders.Count() > 1) { editableExpander.NextCommand = new DelegateCommand <EditableExpander> (ExecuteNextCommand); } }
private void ExecuteNextCommand(EditableExpander editableExpander) { var index = Expanders.IndexOf(editableExpander); var nextIndex = index + 1; if (nextIndex == Expanders.Count) { nextIndex = 0; } EditableExpander next; while ((next = Expanders[nextIndex]) != editableExpander) { if (next.CanAccess) { next.SetAsNextCommand.Execute(null); break; } nextIndex++; if (nextIndex == Expanders.Count) { nextIndex = 0; } } }
private void InitializeExpander( EditableExpander editableExpander ) { var accessManagerBinding = new Binding (); accessManagerBinding.Source = this; accessManagerBinding.Path = new PropertyPath ( PropertyUtil.ExtractPropertyName ( () => AccessControlManager ) ); editableExpander.SetBinding ( SecureControl.AccessControlManagerProperty, accessManagerBinding ); if ( SaveCommand != null ) { var saveBinding = new Binding (); saveBinding.Source = this; saveBinding.Path = new PropertyPath ( PropertyUtil.ExtractPropertyName ( () => SaveCommand ) ); editableExpander.SetBinding ( EditableExpander.SaveCommandProperty, saveBinding ); } if ( CancelCommand != null ) { var cancelBinding = new Binding (); cancelBinding.Source = this; cancelBinding.Path = new PropertyPath ( PropertyUtil.ExtractPropertyName ( () => CancelCommand ) ); editableExpander.SetBinding ( EditableExpander.CancelCommandProperty, cancelBinding ); } if ( Expanders.Count () > 1 ) { editableExpander.NextCommand = new DelegateCommand<EditableExpander> ( ExecuteNextCommand ); } }
private void ExecuteNextCommand( EditableExpander editableExpander ) { var index = Expanders.IndexOf ( editableExpander ); var nextIndex = index + 1; if ( nextIndex == Expanders.Count ) { nextIndex = 0; } EditableExpander next; while ( ( next = Expanders[nextIndex] ) != editableExpander ) { if ( next.CanAccess ) { next.SetAsNextCommand.Execute ( null ); break; } nextIndex++; if ( nextIndex == Expanders.Count ) { nextIndex = 0; } } }