/// <summary>
        /// 초기화
        /// </summary>
        protected virtual void Initialize()
        {
            DataGridViewModel = new IOStockDataGridViewModel();
            ProjectListBoxViewModel = new IOStockProjectListBoxViewModel();
            TreeViewViewModel = new MultiSelectTreeViewModelView();
            DatePickerViewModel = new IOStockDatePickerViewModel();
            SearchViewModel = new FilterSearchTextBoxViewModel();
            SearchViewModel.SearchCommand = new RelayCommand(ExecuteSearchCommand, CanSearch);

            IsCheckedInComing = true;
            IsCheckedOutGoing = true;

            DatePickerViewModel.CommandExecuted += OnDatePickerCommandExecuted;
            ProjectListBoxViewModel.PropertyChanged += OnProjectListPropertyChanged;
            TreeViewViewModel.PropertyChanged += OnTreeViewNodesSelected;

            DataGridViewModel.PropertyChanged += OnDataGridViewModelPropertyChanged;
            SelectedItemModifyCommand = new RelayCommand<object>(ExecuteSelectedItemModifyCommand, CanModifySelectedItem);

            ShowMakerColumn = true;
            ShowRemainQtyColumn = true;
            ShowSecondStockTypeColumn = true;
            ShowSpecificationMemoColumn = true;
            CanModify = false;

            SelectedDataGridGroupOption = DataGridGroupOptions.First();
        }
        /// <summary>
        /// 초기화
        /// </summary>
        protected virtual void Initialize()
        {
            DataGridViewModel1 = new InventoryDataGridViewModel();
            DataGridViewModel2 = new InventoryDataGridViewModel();

            DataGridViewModel1.PropertyChanged += OnDataGridViewPropertyChanged;
            DataGridViewModel2.PropertyChanged += OnDataGridViewPropertyChanged;

            SearchViewModel = new InventorySearchTextBoxViewModel();
            SearchViewModel.SearchCommand = new RelayCommand<object>(ExecuteSearchCommand, (object obj) => { return true; });

            List<ObservableInventory> list = DataDirector.GetInstance().CopyInventories();
            PushDataGridItems(list, true);

            CanModify = false;
            ShowProductColumn = ShowMeasureColumn = ShowMakerColumn = true;

            TreeViewViewModel = new MultiSelectTreeViewModelView();
            TreeViewViewModel.PropertyChanged += OnTreeViewPropertyChanged;
        }
        /// <summary>
        /// 명령어와 뷰모델 초기화
        /// </summary>
        private void Initialize()
        {
            TreeViewViewModel = new MultiSelectTreeViewModelView();
            TreeViewViewModel.PropertyChanged += OnTreeViewModelPropertyChanged;
            TreeViewViewModel.ContextMenuVisibility = Visibility.Collapsed;

            ProductSearchCommand = new RelayCommand(ExecuteProductSearchCommand, CanSearch);
            RecordCommand = new RelayCommand(ExecuteRecordCommand, CanRecord);
            ProductSelectCommand = new RelayCommand(ExecuteProductSelectCommand, CanSelectProduct);
            ProjectComboBoxGotFocusEventCommand = new RelayCommand<RoutedEventArgs>(ExecuteProjectComboBoxGotFocusEventCommand);
            LoadLastRecordCommand = new RelayCommand(ExecuteLoadLastRecordCommand, CanLoadLastRecord);
            ComboBoxItemDeleteCommand = new RelayCommand<object>(ExecuteComboBoxItemDeleteCommand);
            WindowCloseCommand = new RelayCommand(ExecuteWindowCloseCommand);
            ComboBoxKeyUpEventCommand = new RelayCommand<KeyEventArgs>(ExecuteComboBoxKeyUpEventCommand);

            var ofd = DataDirector.GetInstance();
            _makerList = new ObservableCollection<Observable<Maker>>(ofd.CopyFields<Maker>());
            _measureList = new ObservableCollection<Observable<Measure>>(ofd.CopyFields<Measure>());
            _projectList = new ObservableCollection<Observable<Project>>(ofd.CopyFields<Project>());
            _employeeList = new ObservableCollection<Observable<Employee>>(ofd.CopyFields<Employee>());
            _warehouseList = new ObservableCollection<Observable<Warehouse>>(ofd.CopyFields<Warehouse>());
        }