private void SetScope([NotNull] ScopeDescriptor descriptor) { Debug.ArgumentNotNull(descriptor, nameof(descriptor)); TreeView = descriptor.TreeView; RootTreeViewItem = descriptor.Item; Content = TreeView; var input = TreeView.SelectedItem as IInputElement; if (input != null) { Keyboard.Focus(input); } RaiseScopeChanged(); }
public ScopeModel BuildScopeModel() { var scope = _variableScope.ToArray(); var keys = new List <string>(); var items = new Dictionary <string, IEnumerable <string> >(); foreach (var key in scope[0].Variables.Keys) { keys.Add(key); items.Add(key, scope[0].Variables[key].Descriptor.Properties.Select(x => x.Name).ToArray()); } var queryScope = new ScopeDescriptor() { Keys = keys, Items = items }; keys = new List <string>(); items = new Dictionary <string, IEnumerable <string> >(); var lastIndex = scope.Length - 1; foreach (var key in scope[lastIndex].Variables.Keys) { keys.Add(key); items.Add(key, scope[lastIndex].Variables[key].Descriptor.Properties.Select(x => x.Name).ToArray()); } var globalScope = new ScopeDescriptor() { Keys = keys, Items = items }; return(new ScopeModel() { Global = globalScope, QueryScope = queryScope }); }