private void FillEmptyU(int begindex, int count) { var cabinetEmptyUControl = new UCCabinetEmptyUControl(); var emptyCabinetDeviceUnit = new CabinetDeviceUnit(); emptyCabinetDeviceUnit.BeginLocation = begindex; emptyCabinetDeviceUnit.Height = count; cabinetEmptyUControl.UpdateCabinetDevice(emptyCabinetDeviceUnit); stackPanel.Children.Insert(0, cabinetEmptyUControl); }
private void SetCabinetUnit(CabinetDeviceUnit deviceUnit) { grid.RowDefinitions.Clear(); double rowHeight = this.Height / deviceUnit.Height; int index = deviceUnit.BeginLocation + deviceUnit.Height - 1; for (int i = 0; i < deviceUnit.Height; i++) { var rowDefinition = new RowDefinition(); rowDefinition.Height = new GridLength(rowHeight, GridUnitType.Pixel); grid.RowDefinitions.Add(rowDefinition); var cabinetUnitControl = new UCCabinetCalibrationControl(); cabinetUnitControl.DataContext = new CabinetUnit(index); grid.Children.Add(cabinetUnitControl); Grid.SetRow(cabinetUnitControl, i); index--; } }
private void SetCabinetDevice(CabinetDeviceUnit deviceUnit, Style deviceNameStyle) { stackPanel.Children.Clear(); double cabinetDeviceUnitHeight = this.Height / deviceUnit.DeviceList.Count; foreach (var device in deviceUnit.DeviceList) { var cabinetDeviceUnitControl = new UCCabinetDeviceControl(); cabinetDeviceUnitControl.SelectedDeviceChanged = this.DeviceSelectedChanged; if (device.DeviceNameVisibility != Visibility.Visible) { cabinetDeviceUnitControl.ToolTip = device.DeviceName; } cabinetDeviceUnitControl.DeviceNameStyle = deviceNameStyle; cabinetDeviceUnitControl.DataContext = device; cabinetDeviceUnitControl.Height = cabinetDeviceUnitHeight; stackPanel.Children.Insert(0, cabinetDeviceUnitControl); } }
/// <summary> /// 更新机柜设备单元 /// </summary> /// <param name="deviceUnit"></param> /// <param name="deviceNameStyle"></param> public void UpdateCabinetDevice(CabinetDeviceUnit deviceUnit, Style deviceNameStyle) { this.Height = deviceUnit.Height * CabinetConstant.SINGLE_U_HEIGHT; this.SetCabinetUnit(deviceUnit); this.SetCabinetDevice(deviceUnit, deviceNameStyle); }