private void RefreshSelectedTreeLevels() { try { int lastGoodItem = 0; TreeNode selectedChildNode = SelectedTreeLevels[0].SelectedChildNode; for (int i = 1; i < SelectedTreeLevels.Count; i++) { if ((selectedChildNode == null) || (SelectedTreeLevels[i].TreeNode != selectedChildNode)) { break; // This selection, and all those below is no longer consistent with the selections above } lastGoodItem = i; selectedChildNode = SelectedTreeLevels[i].SelectedChildNode; } int j = SelectedTreeLevels.Count - 1; while (j > lastGoodItem) { SelectedTreeLevels.RemoveAt(j); j--; } // Add the selection point at the end SelectedTreeLevel lastSelectedTreeLevel = SelectedTreeLevels[SelectedTreeLevels.Count - 1]; SelectedTreeLevels.Add(new SelectedTreeLevel(lastSelectedTreeLevel, lastSelectedTreeLevel.SelectedChildNode)); } catch (Exception ex) { Logging.LogException(ex); throw; } }
public SelectedTreeLevel(SelectedTreeLevel parent, TreeNode treeNode) { Parent = parent; TreeNode = treeNode; //foreach (var item in treeNode.ChildTreeNodes) //{ // ChildNames.Add(item.Name); // junkChildNames.Add(item.Name); //} }
private void lstTreeLevels_ItemTap(object sender, ItemTappedEventArgs e) { try { SelectedTreeLevel selectedTreeLevel = e.Item as SelectedTreeLevel; SelectTreeLevel(selectedTreeLevel); } catch (Exception ex) { Logging.LogException(ex); throw; } }
private void Item_Clicked(object sender, EventArgs e) { try { Button btn = sender as Button; SelectedTreeLevel selectedTreeLevel = btn?.BindingContext as SelectedTreeLevel; SelectTreeLevel(selectedTreeLevel); } catch (Exception ex) { Logging.LogException(ex); throw; } }
private void SelectTreeLevel(SelectedTreeLevel selectedTreeLevel) { try { CurrentlySelectedTreeLevel = selectedTreeLevel; CurrentEquationCalc = null; OnPropertyChanged("CurrentEquationCalc"); if (CurrentlySelectedTreeLevel == null) { throw new UnspecifiedException("CurrentlySelectedTreeLevel should not be null"); } SelectedLevelChildNames.Clear(); _selectedLevelChildren.Clear(); _selectedLevelSelectedChild = null; foreach (var node in CurrentlySelectedTreeLevel?.TreeNode?.ChildTreeNodes) { SelectedLevelChildNames.Add(node.Name); _selectedLevelChildren.Add(node.Name, node); } //picker.IsOpen = true; lstTreeLevels.IsVisible = false; equationDisplay.IsVisible = lstTreeLevels.IsVisible; if (SelectedLevelChildNames.Count == 0) { lstLevels.IsVisible = false; lstEquations.IsVisible = true; } else { lstLevels.IsVisible = true; lstEquations.IsVisible = false; } } catch (Exception ex) { Logging.LogException(ex); throw; } }