public TilesetsView(TileEditor editor, BrushesViewModel brushesViewModel, TilesetsViewModel tilesetsViewModel)
        {
            this.editor            = editor;
            this.brushesViewModel  = brushesViewModel;
            this.tilesetsViewModel = tilesetsViewModel;

            brushesViewModel.PropertyChanged += brushesViewModel_PropertyChanged;

            // Set data context.
            DataContext = tilesetsViewModel;

            InitializeComponent();

            CollectionView collectionView = (CollectionView)CollectionViewSource.GetDefaultView(setsListView.ItemsSource);

            collectionView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Descending));

            tileGridManager      = new TileGridManager(tileGrid, gridBorder);
            selectionGridManager = new TileGridManager(selectionGrid, selectionBorder);

            rectangles = new List <Rectangle>();

            // Hide view by default.
            tilesetView.Visibility = Visibility.Hidden;
        }
        /// <summary>
        /// Creates new Tile editor GUI configurer.
        /// </summary>
        /// <param name="editor">tile editor instance that windows and user controls will need</param>
        public TileEditorGUIConfigurer(TileEditor editor)
        {
            this.editor = editor;

            tilesetsViewModel = new TilesetsViewModel(editor);
            brushesViewModel  = new BrushesViewModel(editor, tilesetsViewModel);
        }