private void btnSelectAction_Click(object sender, RoutedEventArgs e)
        {
            //int index=this

            Prescription Prescription = CourseListBox.SelectedItem as Prescription;
            if (Prescription != null)
            {
                var list = (from od in MySession.Query<Prescriptiondetails>()
                            where od.PrescriptionId == Prescription.Id
                            select od).OrderBy(x => x.LastTime).ToList();

                if (list.Count > 0)
                {
                    foreach (var item in list)
                    {
                        ItemDemo demo = new ItemDemo();
                        demo.Id = item.Id;
                        demo.MaxAngle = Convert.ToInt32(item.MaxAngle);
                        demo.ActionName = GetModeTypeName(item.ActionId.ToString());
                        demo.ModeName = GetModeTypeName(item.ModeId.ToString());
                        demo.MinAngle = Convert.ToInt32(item.MinAngle);
                        demo.Mode = Convert.ToInt32(item.ModeId);
                        demo.ActionId = Convert.ToInt32(item.ActionId);
                        demo.Speed = Convert.ToInt32(item.Speed);
                        demo.Times = Convert.ToInt32(item.Times);
                        demo.Force = Convert.ToInt32(item.PForce);
                        demo.Position = Convert.ToInt32(item.LastLocation);
                        if (item.PGroup.HasValue)
                        {
                            demo.GroupTimes = Convert.ToInt32(item.PGroup);
                        }
                        demo.PicturePath = "/images/prescribe.png";
                        listResult.Add(demo);
                    }
                    if (listResult.Count > 0)
                    {
                        MyActionListBox.DataContext = listResult;
                        MyActionListBox.SelectedIndex = listResult.Count - 1;
                    }
                }
            }
            else
            {
                AlarmDialog msgBox = new AlarmDialog();
                msgBox.lblMsg.Text = "请选择疗程!";
                msgBox.lblTitle.Text = "提示信息";
                msgBox.Show();
            }
        }
 public void SetPrescriptionItems()
 {
     if (listResult != null)
     {
         listResult.Clear();
     }
     foreach (var myItem in PrescriptionList)
     {
         ItemDemo item = new ItemDemo();
         item.Id = myItem.Id;
         item.MaxAngle = myItem.MaxAngle;
         item.ActionName = myItem.ActionName;
         item.ModeName = myItem.ModeName;
         item.MinAngle = myItem.MinAngle;
         item.Mode = myItem.ModeId;
         item.ActionId = myItem.ActionId;
         item.Speed = myItem.Speed;
         item.Times = myItem.Times;
         item.Force = myItem.PForce;
         item.Position = myItem.LastLocation;
         if (myItem.PGroup.HasValue)
         {
             item.GroupTimes = myItem.PGroup.Value;
         }
         item.PicturePath = "/images/prescribe.png";
         listResult.Add(item);
     }
 }
        private void MyActionListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (tempItem != null)
            {
                tempItem.Force = this.setControlForce.Value;
                tempItem.MaxAngle = this.setControlMaxAngle.Value;
                tempItem.MinAngle = this.setControlMinAngle.Value;
                tempItem.Speed = this.setControlSpeed.Value;
                tempItem.ActionId = EnumHelper.GetEnumItemValueByName(((ComboBoxItem)this.CboAction.SelectedItem).Tag.ToString(), typeof(ActionEnum)); //this.CboAction.SelectedIndex;
                tempItem.Mode = EnumHelper.GetEnumItemValueByName(((ComboBoxItem)this.CboMode.SelectedItem).Tag.ToString(), typeof(ModeEnum)); //this.CboMode.SelectedIndex;
                tempItem.Times = this.setControlTimes.Value;
                tempItem.Position = this.setControlPosition.Value;
                tempItem.GroupTimes = this.setControlGroup.Value;
            }
            ItemDemo item = MyActionListBox.SelectedItem as ItemDemo;
            if (item != null)
            {
                tempItem = item;
                this.setControlForce.Value = item.Force;
                this.setControlMaxAngle.Value = item.MaxAngle;
                this.setControlMinAngle.Value = item.MinAngle;
                this.setControlSpeed.Value = item.Speed;
                //this.CboAction.SelectedIndex = item.ActionId;
                //this.CboMode.SelectedIndex = item.Mode;
                string name = EnumHelper.GetEnumValueName((ActionEnum)item.ActionId);
                foreach (ComboBoxItem it in this.CboAction.Items)
                {
                    if (it.Tag.ToString() == name)
                    {
                        it.IsSelected = true;
                        break;
                    }
                }

                name = EnumHelper.GetEnumValueName((ModeEnum)item.Mode);
                foreach (ComboBoxItem it in this.CboMode.Items)
                {
                    if (it.Tag.ToString() == name)
                    {
                        it.IsSelected = true;
                        break;
                    }
                }
                this.setControlTimes.Value = item.Times;
                this.setControlPosition.Value = item.Position;
                this.setControlGroup.Value = item.GroupTimes;
            }
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            tempItem = null;
            MyActionListBox.SelectedIndex = -1;

            if (listResult.Count < 12)
            {
                if (CboAction.SelectedIndex == 0)
                {
                    AlarmDialog dialog = new AlarmDialog();
                    dialog.lblTitle.Text = "提示信息";
                    dialog.lblMsg.Text = "请选择动作!";
                    dialog.ShowDialog();
                    //if (MessageBox.Show("请选择动作!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK)
                    //{ }

                }
                else
                {
                    if (CboMode.SelectedIndex == 0)
                    {
                        AlarmDialog dialog = new AlarmDialog();
                        dialog.lblTitle.Text = "提示信息";
                        dialog.lblMsg.Text = "请选择模式!";
                        dialog.ShowDialog();
                        //if (MessageBox.Show("请选择模式!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK)
                        //{ }
                    }
                    else
                    {

                        ItemDemo item = new ItemDemo();
                        item.Id = Guid.NewGuid().ToString("N");
                        item.MaxAngle = this.setControlMaxAngle.Value;
                        ComboBoxItem cbi = (ComboBoxItem)this.CboAction.SelectedItem;
                        item.ActionName = cbi.Content.ToString();
                        ComboBoxItem cbMode = (ComboBoxItem)this.CboMode.SelectedItem;
                        item.ModeName = cbMode.Content.ToString();
                        item.MinAngle = this.setControlMinAngle.Value;
                        item.Mode = EnumHelper.GetEnumItemValueByName(((ComboBoxItem)this.CboMode.SelectedItem).Tag.ToString(), typeof(ModeEnum));//this.CboMode.SelectedIndex;
                        item.ActionId = EnumHelper.GetEnumItemValueByName(((ComboBoxItem)this.CboAction.SelectedItem).Tag.ToString(),typeof(ActionEnum)); //this.CboAction.SelectedIndex;
                        item.Speed = this.setControlSpeed.Value;
                        item.Times = this.setControlTimes.Value;
                        item.Force = this.setControlForce.Value;
                        item.Position = this.setControlPosition.Value;
                        item.GroupTimes = this.setControlGroup.Value;
                        item.PicturePath = "/images/prescribe.png";
                        listResult.Add(item);

                        if (listResult.Count > 0)
                        {
                            MyActionListBox.DataContext = listResult;
                            //MyActionListBox.SelectedIndex = listResult.Count - 1;
                        }
                    }
                }
            }
            else
            {
                AlarmDialog dialog = new AlarmDialog();
                dialog.lblTitle.Text = "提示信息";
                dialog.lblMsg.Text = "最多选择12个动作!";
                dialog.ShowDialog();
                //if (MessageBox.Show("最多选择12个动作!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK)
                //{ }
            }
        }
 /// <summary>
 /// Item赋值
 /// </summary>
 /// <param name="item">原始</param>
 /// <param name="changeItem">新的</param>
 private void SetItem(ItemDemo item, ItemDemo changeItem)
 {
     changeItem.ActionId = item.ActionId;
     changeItem.ActionName = item.ActionName;
     changeItem.Mode = CboMode.SelectedIndex;
     changeItem.Force = item.Force;
     changeItem.GroupTimes = item.GroupTimes;
     changeItem.Id = item.Id;
     changeItem.MaxAngle = item.MaxAngle;
     changeItem.MinAngle = item.MinAngle;
     changeItem.Mode = item.Mode;
     changeItem.ModeName = item.ModeName;
     changeItem.PicturePath = item.PicturePath;
     changeItem.Position = item.Position;
     changeItem.Speed = item.Speed;
     changeItem.Times = item.Times;
 }
        private void btnChange_Click(object sender, RoutedEventArgs e)
        {
            WPFMessageBox msgBox = new WPFMessageBox();
            msgBox.lblMsg.Text = "是否修改!";
            msgBox.lblTitle.Text = "提示信息";
            msgBox.Topmost = true;
            msgBox.ShowDialog();
            if (msgBox.IsFlag)
            {
                ComboBoxItem cbi = (ComboBoxItem)this.CboAction.SelectedItem;
                ComboBoxItem cbiMode = (ComboBoxItem)this.CboMode.SelectedItem;
                if (MyActionListBox.SelectedIndex != -1)
                {
                    if (listResult.Count > 0)
                    {
                        new Thread(() =>
                        {
                            this.Dispatcher.Invoke(new Action(() =>
                            {
                                int testIndex = MyActionListBox.SelectedIndex;
                                ItemDemo item = listResult[MyActionListBox.SelectedIndex] as ItemDemo;
                                item.ActionName = cbi.Content.ToString();
                                item.ActionId = CboAction.SelectedIndex;
                                item.Mode = CboMode.SelectedIndex;
                                item.ModeName = cbiMode.Content.ToString();
                                item.Force = setControlForce.Value;
                                item.Speed = setControlSpeed.Value;
                                item.MinAngle = setControlMinAngle.Value;
                                item.MaxAngle = setControlMaxAngle.Value;
                                item.GroupTimes = item.GroupTimes;
                                item.Times = setControlTimes.Value;
                                item.Position = setControlPosition.Value;
                                item.GroupTimes = setControlGroup.Value;
                                ItemDemo changeItem = new ItemDemo();
                                SetItem(item, changeItem);
                                listResult.RemoveAt(MyActionListBox.SelectedIndex);
                                listResult.Insert(testIndex, changeItem);
                                MyActionListBox.DataContext = listResult;
                                MyActionListBox.SelectedIndex = testIndex;

                            }));
                        }).Start();
                    }
                }
            }
        }
        private void MyActionListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            SetIsEnabled();

            ItemDemo item = MyActionListBox.SelectedItem as ItemDemo;
            if (item != null)
            {
                tempItem = item;
                this.txtAction.Text = item.ActionName;
                //this.txtMode.Text = EnumHelper.GetEnumItemName(Convert.ToInt32(item.Mode), typeof(ModeEnum));
                //this.txtSpeed.Text = item.Speed.ToString();
                this.txtTimes.Text = "0/" + (item.Times * item.GroupTimes).ToString();
                //this.txtForce.Text = item.Force.ToString();
                //this.txtMaxAngle.Text = item.MaxAngle.ToString();
                //this.txtMinAngle.Text = item.MinAngle.ToString();
                CurrentIndex = MyActionListBox.SelectedIndex;

                this.CboAction.SelectedIndex = tempItem.ActionId;
                this.setControlForce.Value = tempItem.Force;
                this.setControlMaxAngle.Value = tempItem.MaxAngle;
                this.setControlMinAngle.Value = tempItem.MinAngle;
                this.setControlSpeed.Value = tempItem.Speed;
                this.CboMode.SelectedIndex = tempItem.Mode;
                this.setControlTimes.Value = tempItem.Times;
                this.setControlPosition.Value = tempItem.Position;
                this.setControlGroup.Value = tempItem.GroupTimes;
            }
        }