//private void ActiveAwareIsActiveChanged(object sender, EventArgs e)
        //{
        //    IActiveAware activeAware = (sender as IActiveAware);
        //    if (activeAware == null) { return; }
        //    CommandFindNextDescription.IsActive = activeAware.IsActive;
        //    CommandFindPrevDescription.IsActive = activeAware.IsActive;
        //}

        #region Events



        private bool checkTreeNodeFragmentRemoval(bool done, TreeNode node)
        {
            if (node.HasXmlProperty &&
                node.GetXmlElementLocalName().Equals("img", StringComparison.OrdinalIgnoreCase))
            {
                if (done)
                {
                    DescriptionsNavigator.RemoveDescribableTreeNode(node);
                }
                else
                {
                    DescriptionsNavigator.AddDescribableTreeNode(node);
                }
                RaisePropertyChanged(() => HasNotDescribableTreeNodes);

                return(true); // break
            }
            foreach (var child in node.Children.ContentsAs_Enumerable)
            {
                if (checkTreeNodeFragmentRemoval(done, child))
                {
                    return(true);
                }
            }
            return(false);
        }
        private void onDescribableTreeNodeFoundByFlowDocumentParser(TreeNode data)
        {
            if (!TheDispatcher.CheckAccess())
            {
#if DEBUG
                Debugger.Break();
#endif
                TheDispatcher.Invoke(DispatcherPriority.Normal, (Action <TreeNode>)onDescribableTreeNodeFoundByFlowDocumentParser, data);
                return;
            }
            DescriptionsNavigator.AddDescribableTreeNode(data);

            RaisePropertyChanged(() => HasNotDescribableTreeNodes);
        }