Exemple #1
0
        /// <summary>
        ///		Carga los datos del árbol
        /// </summary>
        public void Load()
        {
            object state = new object();

            // Carga los nodos en el árbol
            //? _contexUi mantiene el contexto de sincronización que creó el ViewModel (que debería ser la interface de usuario)
            //? Al generarse las tablas en otro hilo o desde un evento, no se puede borrar ObservableCollection sin una
            //? excepción del tipo "Este tipo de CollectionView no admite cambios en su SourceCollection desde un hilo diferente del hilo Dispatcher"
            //? Por eso se tiene que añadir el mensaje de log desde el contexto de sincronización de la UI
            ContextUI.Send(_ => {
                List <IHierarchicalViewModel> nodesExpanded = GetNodesExpanded(Children);

                // Limpia la colección de hijos
                Children.Clear();
                // Añade los nodos raíz
                AddRootNodes();
                // Expande los nodos previamente abiertos
                ExpandNodes(Children, nodesExpanded);
            },
                           state
                           );
        }