private void DeleteAction(MaterialItem item)
 {
     string warningMsg = Application.Current.TryFindResource("dialogDeleteCondition").ToString();
     if (dialogService.ShowDialog(warningMsg, "Delete"))
     {
         materialDataService.DeleteMaterialItem(item);
         Reload();
     }
 }
        public bool DeleteMaterialItem(MaterialItem item)
        {
            string cmdText = "delete from Material where id=@id";
            SQLiteParameter[] cmdParameters =
            {
                new SQLiteParameter("@id",item.Id),
            };

            return SqliteHelper.ExecuteNonQuery(cmdText, cmdParameters) > 0;
        }
 private void EditAction(MaterialItem item)
 {
     ShowEditArea();
     EditState = "Editing the Choosing Item";
     //注意以后这一要深拷贝一下
     MaterialItem newItem = new MaterialItem();
     newItem.Id = item.Id;
     newItem.MaterialName = item.MaterialName;
     newItem.MoleWeight = item.MoleWeight;
     newItem.PopRate = item.PopRate;
     EditMaterialItem = newItem;
 }
        /// <summary>
        /// 选择材料库项目的时候,自动填入到计算条件项目中
        /// </summary>
        /// <param name="item"></param>
        private void SelectMaterialAction(MaterialItem item)
        {
            //每次选择材料后,都给材料的PopRate数值+1
            item.PopRate++;
            materialLibraryDS.UpdateMaterialItem(item);

            ConditionItem.MaterialName = item.MaterialName;
            ConditionItem.MoleWeight = item.MoleWeight;

            //引发属性改动事件
            RaisePropertyChanged(()=>ConditionItem);
        }
        public bool UpdateMaterialItem(MaterialItem item)
        {
            string cmdText = "update material set materialName=@materialName,moleWeight=@moleWeight,popRate=@popRate where id=@id";
            SQLiteParameter[] cmdParameters =
            {
                new SQLiteParameter("@materialName",item.MaterialName),
                new SQLiteParameter("@moleWeight",item.MoleWeight),
                new SQLiteParameter("@popRate",item.PopRate),
                new SQLiteParameter("@id",item.Id)
            };

            return SqliteHelper.ExecuteNonQuery(cmdText, cmdParameters) > 0;
        }
        public bool AddMaterialItem(MaterialItem item)
        {
            string cmdText = "insert into material (id,materialName,moleWeight,popRate) values  (@id,@materialName,@moleWeight,@popRate) ";
            SQLiteParameter[] cmdParameters =
            {
                new SQLiteParameter("@id",item.Id),
                new SQLiteParameter("@materialName",item.MaterialName),
                new SQLiteParameter("@moleWeight",item.MoleWeight),
                new SQLiteParameter("@popRate",item.PopRate)
            };

            return SqliteHelper.ExecuteNonQuery(cmdText, cmdParameters) > 0;
        }
        /// <summary>
        /// Initializes a new instance of the MaterialLibraryViewModel class.
        /// </summary>
        public MaterialLibraryViewModel(IMaterialLibraryDataService datads, IDialogService dialogds)
        {
            materialDataService = datads;
            dialogService = dialogds;
            Reload();
            HideEditArea();
            EditMaterialItem = new MaterialItem() { };

            AddCommand = new RelayCommand(AddAction);
            EditCommand = new RelayCommand<MaterialItem>(EditAction);
            DeleteCommand = new RelayCommand<MaterialItem>(DeleteAction);
            SaveCommand = new RelayCommand(SaveAction, CanSaveFunc);
            CancelCommand = new RelayCommand(CancelAction);

        }
        public IList<MaterialItem> GetAllMaterialItems()
        {
            string cmdText = "select id,materialName,moleweight,poprate from material  order by materialname,poprate desc";
            SQLiteDataReader dr = SqliteHelper.ExecuteReader(cmdText, null);
            IList<MaterialItem> results = new List<MaterialItem>(); 

            while (dr.Read())
            {
                MaterialItem tmp = new MaterialItem();
                tmp.Id = dr.GetGuid(0);
                tmp.MaterialName = dr.GetString(1);
                tmp.MoleWeight = dr.GetDouble(2);
                tmp.PopRate = dr.GetInt32(3);

                results.Add(tmp);
            }
            dr.Close();

            return results;
        }
 private void AddAction()
 {
     ShowEditArea();
     EditState = "Adding New Item";
     EditMaterialItem = new MaterialItem() { MaterialName = "default", MoleWeight = 10 };
 }