/// <summary>
        /// 當選擇的分析項目改變時,觸發可選用的成分清單改變
        /// </summary>
        private void OnPropChanged()
        {
            StringBuilder sqlString = new StringBuilder();

            sqlString.AppendFormat("PROP_INDEX in ({0})",
                                   string.Join(",", _selectedProps.Select(x => "'" + x.Key + "'")));
            _selectedCompViewModel = new SelectItemViewModel();

            Dictionary <int, string> availableItems = _ds.Tables["PROP_COMP_INFO"].Select(sqlString.ToString())
                                                      .Select(x => new { Key = x.Field <int>("TEST_ITEM_INDEX"), Value = x.Field <string>("ITEM_NAME") })
                                                      .Distinct().ToDictionary(x => x.Key, x => x.Value);

            _selectedCompViewModel.AvailableItemList = availableItems;
            SelectedCompInfoString = "";
            _selectedComps         = null;
        }
        /// <summary>
        /// 當選擇的分析儀器/方法改變時,觸發可選用的分析項目清單改變
        /// </summary>
        private void OnCategoryChanged()
        {
            _selectedCompViewModel = new SelectItemViewModel(); // 如果更改分析儀器/方法,整個成分選取項要取消
            string sqlstring = string.Format("CATE_NAME='{0}'", this.CATE_NAME);
            Dictionary <int, string> availableItems = _ds.Tables["PROPERTY_INFO"].Select(sqlstring, "PROD_NAME")
                                                      .Select(x => new { Key = x.Field <int>("PROP_INDEX"), Value = x.Field <string>("PROD_NAME") })
                                                      .ToDictionary(x => x.Key, x => x.Value);

            _selectedPropViewModel.AvailableItemList = availableItems;
            SelectedPropInfoString = "";
            _selectedProps         = null;

            //_selectedCompViewModel = new SelectItemViewModel(); // 如果更改分析儀器/方法,整個成分選取項要取消
            //availableItems = _ds.Tables["TEST_ITEM_INFO"].Rows.Cast<DataRow>()
            //    .Select(x => new { Key = x.Field<int>("TEST_ITEM_INDEX"), Value = x.Field<string>("ITEM_NAME") })
            //    .ToDictionary(x => x.Key, x => x.Value);
            //_selectedCompViewModel.AvailableItemList = availableItems;
            //SelectedCompInfoString = "";
            //_selectedComps = null;
        }