private void ListDevices() { double maxHeight = SP_Devices.MaxHeight - 58; GRD_Devices_List.Children.Clear(); int column = 0; int line = 0; double marginLeft; double marginTop = 0; foreach (var item in Devices.OrderByDescending(i => i.DeviceName)) { if (column < NColumns) { marginLeft = column * ItemWidth + column * DefaultMarginRight; column++; } else { column = 1; line++; marginLeft = 0; marginTop = line * ItemHeight + (line + 1) * DefaultMarginTop; } var device = new UC_Devices_Item() { ItemWidth = ItemWidth, ItemHeight = ItemHeight, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Margin = new Thickness(marginLeft, marginTop, DefaultMarginRight, 0), DeviceID = item.DeviceID, DeviceName = item.DeviceName, Latitude = item.Latitude.ToString(CultureInfo.InvariantCulture), Longitude = item.Longitude.ToString(CultureInfo.InvariantCulture), DefaultProjectColor = DefaultProjectColor }; device.Remove += RemovedDevice; device.BindData(); GRD_Devices_List.Children.Insert(0, device); } SV_Devices.Height = Math.Min(maxHeight, (Devices.Count * ItemHeight + (Devices.Count + 1) * DefaultMarginTop) + 3); TB_NMessages.Text = Devices.Count.ToString(CultureInfo.InvariantCulture); TB_NDevices.Text = Devices.Count.ToString(CultureInfo.InvariantCulture); BRD_Alert.Visibility = Devices.Count > 0 ? Visibility.Visible : Visibility.Collapsed; BRD_Expand.Visibility = AllowToExpandDevices ? Visibility.Visible : Visibility.Collapsed; }
private void RemovedDevice(object sender, RoutedEventArgs e) { UC_Devices_Item item = sender as UC_Devices_Item; RemovedDeviceID = item.DeviceID; RemoveDevice(RemovedDeviceID); if (DeviceRemoved != null) { DeviceRemoved?.Invoke(this, null); } }