// void Update() // { // if (TreeModel != null && TreeModel.IsDirty) TreeModel.Refresh(); // Repaint(); // } public void SelectionChanged(GraphItemViewModel selected) { if (TreeModel == null) { return; } var selectedData = selected == null ? null : selected.DataObject; if (selectedData != TreeModel.SelectedData) { var item = TreeModel.TreeData.FirstOrDefault(_ => _.Data == selectedData); if (item != null) { TreeModel.SelectedIndex = item.Index; TreeModel.ExpandPathTo(item); TreeModel.ScrollToItem(item); } else { TreeModel.SelectedIndex = -1; } } }