UcSingleStateTab.xaml.cs 5.18 KB
Newer Older
潘栩锋's avatar
潘栩锋 committed
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; }
        }
    }
}