private void ListBoxItemMouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var dataRepositoryItem = sender.GetDataContext <DataRepositoryItem>();

            if (dataRepositoryItem != null)
            {
                if (!dataRepositoryItem.IsLeaf)
                {
                    DataRepositoryItemMouseDoubleClickUserControlEventArgs args = new DataRepositoryItemMouseDoubleClickUserControlEventArgs();
                    args.SelectedDataRepositoryItem = dataRepositoryItem;
                    OnDataRepositoryItemMouseDoubleClick(args);
                    if (args.Handled)
                    {
                        return;
                    }

                    if (dataRepositoryItem.Parent != null && !dataRepositoryItem.Parent.IsExpanded)
                    {
                        dataRepositoryItem.Parent.IsExpanded = true;
                    }
                    dataRepositoryItem.Refresh();
                    dataRepositoryItem.IsExpanded = true;
                    dataRepositoryItem.IsSelected = true;
                    DataContext = dataRepositoryItem;
                }
                else if (dataRepositoryItem.IsLoadable)
                {
                    dataRepositoryItem.Load();
                }
            }
        }
        protected virtual void OnDataRepositoryItemMouseDoubleClick(DataRepositoryItemMouseDoubleClickUserControlEventArgs e)
        {
            EventHandler <DataRepositoryItemMouseDoubleClickUserControlEventArgs> handler = DataRepositoryItemMouseDoubleClick;

            if (handler != null)
            {
                handler(this, e);
            }
        }