예제 #1
0
        /// <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;
            }
        }
예제 #2
0
 /// <summary>
 /// Получение коллекции [Материалов] продукта с ед. изм.
 /// </summary>
 public static List <Material> GetMaterialsByProductIdWhithMeasure(long productId)
 {
     return(Nu65StorageMssql.GetMaterialsByProductIdWhithMeasure(productId));
 }