private void _selectItem(UserControl item)
        {
            if (selected_item_ != item)
            {
                if (selected_item_ != null)
                {
                    (selected_item_ as TextureFileItem).IsSelected = false;
                }
                if (item != null)
                {
                    (item as TextureFileItem).IsSelected = true;
                }
                selected_item_ = item;

                this.Dispatcher.BeginInvoke(
                    System.Windows.Threading.DispatcherPriority.Input,
                    new Action(() => sv.MakesureChildVisible(selected_item_))
                    );

                var fp = string.Empty;
                if (item != null)
                {
                    fp = (item as TextureFileItem).ImagePath;
                }
                if (SelectedChangedCallback != null)
                {
                    SelectedChangedCallback.Invoke(fp);
                }
            }
        }
 public void RegisterSelectedChangedCallback(SelectedChangedCallback f)
 {
     if (selectedChangedCallback == null)
     {
         selectedChangedCallback = new List <SelectedChangedCallback>();
     }
     selectedChangedCallback.Add(f);
 }