/// <summary> /// Обработка нажатия мышки на строку DataGrid поиска сущностей /// </summary> private void SearchDataGrid_OnPreviewMouseDown(object senderIsDataGrid, MouseButtonEventArgs eventArgs) { // DataGrid поиска сущности var searchDataGrid = senderIsDataGrid as DataGrid; if (searchDataGrid == null) { return; } // Grid-обёртка DataGrid и TextBox поиска var searchWrapperGrid = VisualTreeHelper.GetParent(searchDataGrid) as Grid; if (searchWrapperGrid == null) { return; } // TextBox поиска/добавления var searchTextBox = searchWrapperGrid.Children.OfType <TextBox>().FirstOrDefault(); if (searchTextBox == null) { return; } // Выбранная строка (объект) DataGrid поиска сущности var rawSelectedItem = searchDataGrid.SelectedItem; if (rawSelectedItem == null) { return; } string displayed; var selectedItemType = rawSelectedItem.GetType(); if (selectedItemType == typeof(Product)) // Если тип найденой сущности: [Изделие] { _selectedProduct1 = (Product)rawSelectedItem; Product1CodeLabel.Content = _selectedProduct1.CodeProduct.ToString(CultureInfo.CurrentCulture); Product1NameLabel.Content = _selectedProduct1.Name; Product1MarkLabel.Content = _selectedProduct1.Mark; MaterialWrapperGrid.IsEnabled = true; MaterialCodeLabel.Content = string.Empty; MaterialNameLabel.Content = string.Empty; MaterialMarkLabel.Content = string.Empty; MaterialGostLabel.Content = string.Empty; MeasureLabel.Content = string.Empty; AuxiliaryMaterialConsumptionRateLabel.Content = string.Empty; _searchMaterialStorage = Nu65StorageMssql.GetMaterialsByProductIdWhithMeasure(_selectedProduct1.Id); _searchMaterialStorage.Sort(); SearchMaterialDataGrid.ItemsSource = _searchMaterialStorage; displayed = _selectedProduct1.CodeProduct.ToString(CultureInfo.CurrentCulture); } else if (selectedItemType == typeof(Material)) // Если тип найденой сущности: [Материал] { _selectedMaterial = (Material)rawSelectedItem; MaterialCodeLabel.Content = _selectedMaterial.CodeMaterial.ToString(CultureInfo.CurrentCulture); MaterialNameLabel.Content = _selectedMaterial.Name; MaterialMarkLabel.Content = _selectedMaterial.Profile; MaterialGostLabel.Content = _selectedMaterial.Gost; MeasureLabel.Content = _selectedMaterial.Measure.ShortName; WorkGuildLabel.Content = _selectedMaterial.WorkGuildId; RegionLabel.Content = _selectedMaterial.ParcelId; AuxiliaryMaterialConsumptionRateLabel.Content = _selectedMaterial.AuxiliaryMaterialConsumptionRate; displayed = _selectedMaterial.CodeMaterial.ToString(CultureInfo.CurrentCulture); } else { displayed = rawSelectedItem.ToString(); } // Вывод выбраного значения в TextBox поиска/добавления searchTextBox.Text = displayed; // Перевод фокуса ввода на нижележащий визуальный элемент после [DataGrid] поиска сущности var request = new TraversalRequest(FocusNavigationDirection.Down) { Wrapped = false }; eventArgs.Handled = true; if (searchDataGrid.MoveFocus(request)) { searchDataGrid.Visibility = Visibility.Collapsed; } }
/// <summary> /// Получение коллекции [Материалов] продукта с ед. изм. /// </summary> public static List <Material> GetMaterialsByProductIdWhithMeasure(long productId) { return(Nu65StorageMssql.GetMaterialsByProductIdWhithMeasure(productId)); }