/// <summary>
        /// TEST용 생성자
        /// </summary>
        /// <param name="ioStock"></param>
        public IOStockDataAmenderViewModel(IObservableIOStockProperties ioStock) : base(new IOStockFormat(ioStock.Format))
        {
            Initialize();
            _mode = Mode.MODIFY;
            _originSource = ioStock;
            StockType = ioStock.StockType;

            IsReadOnlyProductTextBox = true;
            IsEnabledSpecificationComboBox = false;
            IsEnabledOutGoingRadioButton = false;
            IsEnabledInComingRadioButton = false;
            IsEnabledDatePicker = false;
            TitleText = TITLE_TEXT_MODIFY;
            LoadLastRecordVisibility = Visibility.Hidden;

            CollectionViewModelObserverSubject.GetInstance().Attach(this);
        }
        /// <summary>
        /// DataGridViewModel.Items 컬렉션에 Add할 수 있는지 질의
        /// </summary>
        /// <param name="iStock"></param>
        /// <returns></returns>
        private bool IsAddEnableInDataGridItems(IObservableIOStockProperties iStock)
        {
            bool result = false;
            switch (SelectedDataGridGroupOption)
            {
                case DATAGRID_OPTION_DATE:
                    DateTime fromDate = DatePickerViewModel.FromDate;
                    DateTime toDate = DatePickerViewModel.ToDate;
                    if (fromDate <= iStock.Date && iStock.Date <= toDate)
                        result = true;
                    break;

                case DATAGRID_OPTION_PROJECT:
                    if (ProjectListBoxViewModel.SelectedItem != null)
                    {
                        if (iStock.Project != null && ProjectListBoxViewModel.SelectedItem.ID == iStock.Project.ID)
                            result = true;
                    }
                    break;

                case DATAGRID_OPTION_PRODUCT:
                    var nodes = TreeViewViewModel.SearchNodeInSelectedNodes(NodeType.PRODUCT | NodeType.INVENTORY);
                    if (nodes.Any(node => node.ObservableObjectID == iStock.Inventory.Product.ID || node.ObservableObjectID == iStock.Inventory.ID))
                        result = true;
                    break;

                default:
                    result = true;
                    break;
            }
            return result;
        }
 /// <summary>
 /// 기존의 IOStockFormat을 수정하고자 할 경우
 /// </summary>
 /// <param name="ioStockStatusViewModel"></param>
 /// <param name="ioStock"></param>
 public IOStockDataAmenderViewModel(IOStockStatusViewModel ioStockStatusViewModel, IObservableIOStockProperties ioStock) :
     this(ioStock)
 {
     _ioStockStatusViewModel = ioStockStatusViewModel;
 }