using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using WpfTest1.SQLite; namespace WpfTest1 { /// /// TreatmentPlanPage.xaml 的交互逻辑 /// public partial class TreatmentPlanPage : UserControl { MainWindow father; public List treatmentList; private Treatment target = null; public TreatmentPlanPage() { InitializeComponent(); loadDataGrid(); } public TreatmentPlanPage(MainWindow father) { this.father = father; InitializeComponent(); loadDataGrid(); } public void setMainWindow(MainWindow father) { this.father = father; } public void loadDataGrid() { treatmentList = SQLiteModel.getALLTreatment(); dataGrid.ItemsSource = treatmentList; target = null; } private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { target = (Treatment)dataGrid.CurrentItem; if (target != null) { textBoxDisease.Text = target.disease; textBoxBodyParts.Text = target.bodyParts; textBoxRate1.Text = target.rate1.ToString(); textBoxRate2.Text = target.rate2.ToString(); textBoxRate3.Text = target.rate3.ToString(); textBoxRate4.Text = target.rate4.ToString(); textBoxRate5.Text = target.rate5.ToString(); textBoxRate6.Text = target.rate6.ToString(); textBoxRate7.Text = target.rate7.ToString(); textBoxRate8.Text = target.rate8.ToString(); textBoxRate9.Text = target.rate9.ToString(); textBoxRate10.Text = target.rate10.ToString(); textBoxNum1.Text = target.num1.ToString(); textBoxNum2.Text = target.num2.ToString(); textBoxNum3.Text = target.num3.ToString(); textBoxNum4.Text = target.num4.ToString(); textBoxNum5.Text = target.num5.ToString(); textBoxNum6.Text = target.num6.ToString(); textBoxNum7.Text = target.num7.ToString(); textBoxNum8.Text = target.num8.ToString(); textBoxNum9.Text = target.num9.ToString(); textBoxNum10.Text = target.num10.ToString(); textBoxIntervalTime.Text = target.intervalTime.ToString(); textBoxRepeatTimes.Text = target.repeatTimes.ToString(); textBoxTotalTime.Text = target.totalTime.ToString(); textBoxTotalNum.Text = target.totalNum.ToString(); } else { textBoxDisease.Text = ""; textBoxBodyParts.Text = ""; textBoxRate1.Text = ""; textBoxRate2.Text = ""; textBoxRate3.Text = ""; textBoxRate4.Text = ""; textBoxRate5.Text = ""; textBoxRate6.Text = ""; textBoxRate7.Text = ""; textBoxRate8.Text = ""; textBoxRate9.Text = ""; textBoxRate10.Text = ""; textBoxNum1.Text = ""; textBoxNum2.Text = ""; textBoxNum3.Text = ""; textBoxNum4.Text = ""; textBoxNum5.Text = ""; textBoxNum6.Text = ""; textBoxNum7.Text = ""; textBoxNum8.Text = ""; textBoxNum9.Text = ""; textBoxNum10.Text = ""; textBoxIntervalTime.Text = ""; textBoxRepeatTimes.Text = ""; textBoxTotalTime.Text = ""; textBoxTotalNum.Text = ""; } } private void textBoxDisease_TextChanged(object sender, TextChangedEventArgs e) { checkChange(); } private void textBoxBodyParts_TextChanged(object sender, TextChangedEventArgs e) { checkChange(); } private void textBoxRateAll_TextChanged(object sender, TextChangedEventArgs e) { checkChange(); } private void textBoxIntervalTime_TextChanged(object sender, TextChangedEventArgs e) { checkChange(); } private void textBoxRepeatTimes_TextChanged(object sender, TextChangedEventArgs e) { checkChange(); } private void checkChange() { if (target != null) { textBoxDisease.Background = textBoxDisease.Text == target.disease ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxBodyParts.Background = textBoxBodyParts.Text == target.bodyParts ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate1.Background = textBoxRate1.Text == target.rate1.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate2.Background = textBoxRate2.Text == target.rate2.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate3.Background = textBoxRate3.Text == target.rate3.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate4.Background = textBoxRate4.Text == target.rate4.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate5.Background = textBoxRate5.Text == target.rate5.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate6.Background = textBoxRate6.Text == target.rate6.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate7.Background = textBoxRate7.Text == target.rate7.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate8.Background = textBoxRate8.Text == target.rate8.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate9.Background = textBoxRate9.Text == target.rate9.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRate10.Background = textBoxRate10.Text == target.rate10.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum1.Background = textBoxNum1.Text == target.num1.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum2.Background = textBoxNum2.Text == target.num2.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum3.Background = textBoxNum3.Text == target.num3.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum4.Background = textBoxNum4.Text == target.num4.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum5.Background = textBoxNum5.Text == target.num5.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum6.Background = textBoxNum6.Text == target.num6.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum7.Background = textBoxNum7.Text == target.num7.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum8.Background = textBoxNum8.Text == target.num8.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum9.Background = textBoxNum9.Text == target.num9.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxNum10.Background = textBoxNum10.Text == target.num10.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxIntervalTime.Background = textBoxIntervalTime.Text == target.intervalTime.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); textBoxRepeatTimes.Background = textBoxRepeatTimes.Text == target.repeatTimes.ToString() ? Brushes.White : (Brush)new BrushConverter().ConvertFrom("#FFC2FFB0"); checkError(); } else { textBoxDisease.Background = Brushes.White; textBoxBodyParts.Background = Brushes.White; textBoxRate1.Background = Brushes.White; textBoxRate2.Background = Brushes.White; textBoxRate3.Background = Brushes.White; textBoxRate4.Background = Brushes.White; textBoxRate5.Background = Brushes.White; textBoxRate6.Background = Brushes.White; textBoxRate7.Background = Brushes.White; textBoxRate8.Background = Brushes.White; textBoxRate9.Background = Brushes.White; textBoxRate10.Background = Brushes.White; textBoxNum1.Background = Brushes.White; textBoxNum2.Background = Brushes.White; textBoxNum3.Background = Brushes.White; textBoxNum4.Background = Brushes.White; textBoxNum5.Background = Brushes.White; textBoxNum6.Background = Brushes.White; textBoxNum7.Background = Brushes.White; textBoxNum8.Background = Brushes.White; textBoxNum9.Background = Brushes.White; textBoxNum10.Background = Brushes.White; textBoxIntervalTime.Background = Brushes.White; textBoxRepeatTimes.Background = Brushes.White; } } private bool checkError() { bool error = false; TextBox[] textBoxRateList = { textBoxRate1, textBoxRate2, textBoxRate3, textBoxRate4, textBoxRate5, textBoxRate6, textBoxRate7, textBoxRate8, textBoxRate9, textBoxRate10 }; for (int i = 0; i < 10; i++) { double t = 0; if (double.TryParse(textBoxRateList[i].Text, out t)) { if (t >= 0 & t < 1) { if ((t * 10 % 1).Equals(0)) { continue; } } else if (t >= 1 & t <= 100) { if (t % 1 == 0) { continue; } } } textBoxRateList[i].Background = (Brush)new BrushConverter().ConvertFrom("#FFFFB5B5"); error = true; } TextBox[] textBoxNumList = { textBoxNum1, textBoxNum2, textBoxNum3, textBoxNum4, textBoxNum5, textBoxNum6, textBoxNum7, textBoxNum8, textBoxNum9, textBoxNum10, textBoxIntervalTime, textBoxRepeatTimes }; for (int i = 0; i < 12; i++) { int t = 0; if (int.TryParse(textBoxNumList[i].Text, out t)) { if (t >= 0 & t <= 100) { if (t % 1 == 0) { continue; } } } textBoxNumList[i].Background = (Brush)new BrushConverter().ConvertFrom("#FFFFB5B5"); error = true; } return error; } private bool isEqualsTarget() { if (target == null) return true; int changenum = 0; changenum = textBoxDisease.Text == target.disease ? changenum : changenum + 1; changenum = textBoxBodyParts.Text == target.bodyParts ? changenum : changenum + 1; changenum = textBoxRate1.Text == target.rate1.ToString() ? changenum : changenum + 1; changenum = textBoxRate2.Text == target.rate2.ToString() ? changenum : changenum + 1; changenum = textBoxRate3.Text == target.rate3.ToString() ? changenum : changenum + 1; changenum = textBoxRate4.Text == target.rate4.ToString() ? changenum : changenum + 1; changenum = textBoxRate5.Text == target.rate5.ToString() ? changenum : changenum + 1; changenum = textBoxRate6.Text == target.rate6.ToString() ? changenum : changenum + 1; changenum = textBoxRate7.Text == target.rate7.ToString() ? changenum : changenum + 1; changenum = textBoxRate8.Text == target.rate8.ToString() ? changenum : changenum + 1; changenum = textBoxRate9.Text == target.rate9.ToString() ? changenum : changenum + 1; changenum = textBoxRate10.Text == target.rate10.ToString() ? changenum : changenum + 1; changenum = textBoxNum1.Text == target.num1.ToString() ? changenum : changenum + 1; changenum = textBoxNum2.Text == target.num2.ToString() ? changenum : changenum + 1; changenum = textBoxNum3.Text == target.num3.ToString() ? changenum : changenum + 1; changenum = textBoxNum4.Text == target.num4.ToString() ? changenum : changenum + 1; changenum = textBoxNum5.Text == target.num5.ToString() ? changenum : changenum + 1; changenum = textBoxNum6.Text == target.num6.ToString() ? changenum : changenum + 1; changenum = textBoxNum7.Text == target.num7.ToString() ? changenum : changenum + 1; changenum = textBoxNum8.Text == target.num8.ToString() ? changenum : changenum + 1; changenum = textBoxNum9.Text == target.num9.ToString() ? changenum : changenum + 1; changenum = textBoxNum10.Text == target.num10.ToString() ? changenum : changenum + 1; changenum = textBoxIntervalTime.Text == target.intervalTime.ToString() ? changenum : changenum + 1; changenum = textBoxRepeatTimes.Text == target.repeatTimes.ToString() ? changenum : changenum + 1; return changenum == 0 ? true : false; } private void buttonChange_Click(object sender, RoutedEventArgs e) { if (target == null) { MessageBox.Show("请选择要修改的治疗方案!"); return; } int id = target.id; string disease = textBoxDisease.Text; string bodyParts = textBoxBodyParts.Text; double.TryParse(textBoxRate1.Text, out double rate1); double.TryParse(textBoxRate2.Text, out double rate2); double.TryParse(textBoxRate3.Text, out double rate3); double.TryParse(textBoxRate4.Text, out double rate4); double.TryParse(textBoxRate5.Text, out double rate5); double.TryParse(textBoxRate6.Text, out double rate6); double.TryParse(textBoxRate7.Text, out double rate7); double.TryParse(textBoxRate8.Text, out double rate8); double.TryParse(textBoxRate9.Text, out double rate9); double.TryParse(textBoxRate10.Text, out double rate10); int.TryParse(textBoxNum1.Text, out int num1); int.TryParse(textBoxNum2.Text, out int num2); int.TryParse(textBoxNum3.Text, out int num3); int.TryParse(textBoxNum4.Text, out int num4); int.TryParse(textBoxNum5.Text, out int num5); int.TryParse(textBoxNum6.Text, out int num6); int.TryParse(textBoxNum7.Text, out int num7); int.TryParse(textBoxNum8.Text, out int num8); int.TryParse(textBoxNum9.Text, out int num9); int.TryParse(textBoxNum10.Text, out int num10); double.TryParse(textBoxIntervalTime.Text, out double intervalTime); int.TryParse(textBoxRepeatTimes.Text, out int repeatTimes); if (checkError()) { MessageBox.Show("存在无效数据,请检查后再点击修改按钮!"); return; } if (isEqualsTarget()) { MessageBox.Show("未进行任何修改!"); return; } SQLiteModel.updateTreatment(id, disease, bodyParts, rate1, rate2, rate3, rate4, rate5, rate6, rate7, rate8, rate9, rate10, num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, intervalTime, repeatTimes); loadDataGrid(); } private void buttonAdd_Click(object sender, RoutedEventArgs e) { if (target == null) { MessageBox.Show("请先随意选择一个方案,修改完成后再点击新增按钮。"); return; } string disease = textBoxDisease.Text; string bodyParts = textBoxBodyParts.Text; double.TryParse(textBoxRate1.Text, out double rate1); double.TryParse(textBoxRate2.Text, out double rate2); double.TryParse(textBoxRate3.Text, out double rate3); double.TryParse(textBoxRate4.Text, out double rate4); double.TryParse(textBoxRate5.Text, out double rate5); double.TryParse(textBoxRate6.Text, out double rate6); double.TryParse(textBoxRate7.Text, out double rate7); double.TryParse(textBoxRate8.Text, out double rate8); double.TryParse(textBoxRate9.Text, out double rate9); double.TryParse(textBoxRate10.Text, out double rate10); int.TryParse(textBoxNum1.Text, out int num1); int.TryParse(textBoxNum2.Text, out int num2); int.TryParse(textBoxNum3.Text, out int num3); int.TryParse(textBoxNum4.Text, out int num4); int.TryParse(textBoxNum5.Text, out int num5); int.TryParse(textBoxNum6.Text, out int num6); int.TryParse(textBoxNum7.Text, out int num7); int.TryParse(textBoxNum8.Text, out int num8); int.TryParse(textBoxNum9.Text, out int num9); int.TryParse(textBoxNum10.Text, out int num10); double.TryParse(textBoxIntervalTime.Text, out double intervalTime); int.TryParse(textBoxRepeatTimes.Text, out int repeatTimes); if (checkError()) { MessageBox.Show("存在无效数据,请检查后再点击修改按钮!"); return; } if (isEqualsTarget()) { MessageBox.Show("新方案与旧方案重复!"); return; } SQLiteModel.insertTreatment(disease, bodyParts, rate1, rate2, rate3, rate4, rate5, rate6, rate7, rate8, rate9, rate10, num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, intervalTime, repeatTimes); loadDataGrid(); } private void buttonDelete_Click(object sender, RoutedEventArgs e) { if (target == null) { MessageBox.Show("请选择要删除的治疗方案!"); return; } int id = target.id; SQLiteModel.deleteTreatment(id); loadDataGrid(); } private void buttonSelect_Click(object sender, RoutedEventArgs e) { if (target == null) { MessageBox.Show("请选择治疗方案!"); return; } father.setTreatment(target); } } }