1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
using FLY.Thick.Base.UI.OnInit;
using MultiLayout;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
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.Navigation;
using System.Windows.Shapes;
namespace FLY.Thick.Base.UI.CustomSection
{
/// <summary>
/// UcSingleStateTab.xaml 的交互逻辑
/// </summary>
public partial class UcSingleStateTab : UserControl
{
List<ControllerStateTabItem> controllerStateTabItems;
GageTabItem gageTabItem;
ObservableCollection<ControllerStateTabItemHeader> controllerStateTabItemHeaders;
public UcSingleStateTab()
{
InitializeComponent();
}
public void Init(List<ControllerStateTabItem> controllerStateTabItems, GageTabItem gageTabItem)
{
this.controllerStateTabItems = controllerStateTabItems;
this.gageTabItem = gageTabItem;
InitControllerstate();
}
void InitControllerstate()
{
controllerStateTabItemHeaders = new ObservableCollection<ControllerStateTabItemHeader>();
foreach (var controllerStateTabItem in controllerStateTabItems)
{
ControllerStateTabItemHeader csh = new ControllerStateTabItemHeader();
csh.ControllerState = controllerStateTabItem.ControllerState;
if (controllerStateTabItem.No < gageTabItem.Items.Count() && controllerStateTabItem.No >= 0)
{
csh.No = controllerStateTabItem.No;
csh.Header = gageTabItem.Items[controllerStateTabItem.No].Header;
}
else
{
continue;
}
controllerStateTabItemHeaders.Add(csh);
}
this.itemsControl_controllerState.ItemsSource = controllerStateTabItemHeaders;
combobox_controllerstate.ItemsSource = new List<string>(
new string[] {
Base.Common.CTRL_STATE.FIX.ToString(),
Base.Common.CTRL_STATE.SCAN.ToString(),
Base.Common.CTRL_STATE.SYNC.ToString()
});
combobox_tabitemheader.ItemsSource = from i in gageTabItem.Items select i.Header;
}
private void button_add_Click(object sender, RoutedEventArgs e)
{
if (combobox_controllerstate.SelectedItem == null)
{
FLY.ControlLibrary.MyMessageBox.Show("请选择状态");
return;
}
if (combobox_tabitemheader.SelectedItem == null)
{
FLY.ControlLibrary.MyMessageBox.Show("请选择页面");
return;
}
//检测是否已经存在
var v = from cs in controllerStateTabItemHeaders
where cs.ControllerState == combobox_controllerstate.SelectedItem as string
select cs;
if (v.Count() > 0)
{
FLY.ControlLibrary.MyMessageBox.Show("已经存在,请删除后再添加");
return;
}
var controllerStateTabItemHeader = new ControllerStateTabItemHeader()
{
ControllerState = combobox_controllerstate.SelectedItem as string,
No = combobox_tabitemheader.SelectedIndex,
Header = combobox_tabitemheader.SelectedItem as string
};
controllerStateTabItemHeaders.Add(controllerStateTabItemHeader);
//添加到实际数据
Add(controllerStateTabItemHeader);
combobox_controllerstate.SelectedItem = null;
combobox_tabitemheader.SelectedItem = null;
}
void Add(ControllerStateTabItemHeader item)
{
//添加到实际数据
controllerStateTabItems.Add(new ControllerStateTabItem()
{
ControllerState = item.ControllerState,
No = item.No
});
}
void Remove(ControllerStateTabItemHeader item)
{
//删除实际数据
var item2 = controllerStateTabItems.Find(cs => cs.ControllerState == item.ControllerState && cs.No == item.No);
if (item2 != null)
{
controllerStateTabItems.Remove(item2);
}
}
private void button_del_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
ControllerStateTabItemHeader controllerStateTabItemHeader = b.Tag as ControllerStateTabItemHeader;
controllerStateTabItemHeaders.Remove(controllerStateTabItemHeader);
//删除实际数据
Remove(controllerStateTabItemHeader);
}
public class ControllerStateTabItemHeader
{
public string ControllerState { get; set; }
public string Header { get; set; }
public int No { get; set; }
}
}
}