private void UpdateForm_Click(object sender, RoutedEventArgs e) { if (e.Source is ViewShield) { ViewShield selectedButton = (ViewShield)e.Source; cBoxSType.Text = selectedButton.SType; cBoxSNum.Text = selectedButton.SNum.ToString(); btnAddDevice.IsEnabled = true; btnDelDevice.IsEnabled = true; btnEditDevice.IsEnabled = false; btnEditDeviceAdr.IsEnabled = false; TempShieldNum = selectedButton.SNum; btnEditShield.IsEnabled = true; EditShielNum_Label.Content = $"Изм. номер шкафа {selectedButton.SType} {selectedButton.SNum}?"; } else if (e.Source is ViewDevice) { this.SelectedDevice = (ViewDevice)e.Source; cBoxDType.Text = SelectedDevice.Header.DeviceType; cBoxDNum.Text = SelectedDevice.Header.DeviceAddress.ToString(); cBoxDBaud.Text = SelectedDevice.Header.DeviceBaudRate.ToString(); cBoxDParity.Text = SelectedDevice.Header.DeviceParity; btnEditDevice.IsEnabled = true; StackPanel selectedPanel = (StackPanel)SelectedDevice.Parent; ViewShield selectedShield = (ViewShield)selectedPanel.Parent; cBoxSType.Text = selectedShield.SType; cBoxSNum.Text = selectedShield.SNum.ToString(); TempDeviceAdr = SelectedDevice.Header.DeviceAddress; btnEditDeviceAdr.IsEnabled = true; EditDeviceAdr_Label.Content = $"Изм. адрес {SelectedDevice.Header.DeviceAddress} ({SelectedDevice.Header.DeviceType})?"; } }
public void Read(string path, WrapPanel config, RoutedEventHandler UpdateForm_Click) { FileStream stream = File.OpenRead(path); XmlSerializer serializer = new XmlSerializer(typeof(Shield[])); Shield[] tempShield = (Shield[])serializer.Deserialize(stream); config.Children.Clear(); foreach (Shield s in tempShield) { ViewShield tempViewShield = new ViewShield(s.ShieldName, s.ShieldNumber, UpdateForm_Click); config.Children.Add(tempViewShield); foreach (Device d in s.Devices) { Header tempHeader = new Header(); tempHeader.DeviceType = d.Header.DeviceType; tempHeader.DeviceAddress = d.Header.DeviceAddress; tempHeader.DeviceBaudRate = d.Header.DeviceBaudRate; tempHeader.DeviceParity = d.Header.DeviceParity; tempHeader.ShieldName = s.ShieldName; tempHeader.ShieldNumber = s.ShieldNumber; tempViewShield.AddDevice(d.Header.DeviceType, d.Header.DeviceAddress, d.Header.DeviceBaudRate, d.Header.DeviceParity, UpdateForm_Click); int countDevice = tempViewShield.ShieldPanel.Children.Count; foreach (Signal sg in d.DeviceSignal) { Signal tempSignal = new Signal(); tempSignal.FunctionCode = sg.FunctionCode; tempSignal.SignalName = sg.SignalName; tempSignal.DataType = sg.DataType; tempSignal.RegisterAddress = sg.RegisterAddress; tempSignal.BitNumber = sg.BitNumber; ((ViewDevice)tempViewShield.ShieldPanel.Children[countDevice - 1]).Signal.Add(tempSignal); } ((ViewDevice)tempViewShield.ShieldPanel.Children[countDevice - 1]).ChangeFace(); } } }