@noire_night

Как обозначить ComboBox в текущем контексте?

Всем привет, я только начинаю разбираться в wpf, возможно очень глупый вопрос, но я целый день ломаю голову и не могу понять в чем заключается проблема.
Я создал combobox в DataTemplate, но при попытке как либо манипулировать им из файла .cs пишет ошибку: Имя "categoryComboBox" не существует в текущем контексте.
Вот код XAML
<DataGrid x:Name="addDataGrid" HorizontalAlignment="Left" ItemsSource="{Binding}" Height="517" VerticalAlignment="Top" Width="975" Initialized="Window_Initialized_Add" AutoGenerateColumns="False">
                        <DataGrid.Columns>
                            <DataGridTemplateColumn Header="Категории">
                                <DataGridTemplateColumn.CellEditingTemplate>
                                    <DataTemplate>
                                        <ComboBox x:Name="categoryComboBox"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellEditingTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>

Вот код .cs
//combobox

        private MySqlDataAdapter categoryaddDataAdapter;

        private void fillCategoryComboBox()
        {
            categoryaddDataAdapter = new MySqlDataAdapter
            {
                SelectCommand = new MySqlCommand()
                {
                    Connection = programQuery,
                    CommandText = "SELECT * FROM category"
                }
            };
            categoryaddDataAdapter.Fill(addDataSet, "category");
            DataTable dtEmpName = addDataSet.Tables["category"];
            categoryComboBox.ItemsSource = ((IListSource)dtEmpName).GetList();
            categoryComboBox.SelectedValuePath = "id_category";
            categoryComboBox.DisplayMemberPath = "name_category";
        }

Как я могу получить доступ к categoryComboBox?
Пробовал прописывать addDataGrid.categoryComboBox, но появляется ошибка: "DataGrid" не содержит определения для "categoryComboBox", и не удалось найти доступный метод расширения "categoryComboBox", принимающий тип "DataGrid" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
  • Вопрос задан
  • 246 просмотров
Решения вопроса 1
@noire_night Автор вопроса
Вопрос решен
<DataGridComboBoxColumn x:Name="testComboBox" ItemsSource="{Binding category}" Header="Категории" DisplayMemberPath="id_category" SelectedValuePath="name_category"/>

private void FilltestComboBox()
        {
            addDataAdapter = new MySqlDataAdapter
            {
                SelectCommand = new MySqlCommand()
                {
                    Connection = programQuery,
                    CommandText = "SELECT * FROM category"
                }
            };

            addDataAdapter.Fill(addDataSet, "category");
            DataTable dtEmpName = addDataSet.Tables["category"];
            testComboBox.ItemsSource = ((IListSource)dtEmpName).GetList();
            testComboBox.SelectedValuePath = "id_category";
            testComboBox.DisplayMemberPath = "name_category";

        }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы