Редактируемый DatagridComboBoxColumn в WPF с использованием C # - PullRequest
0 голосов
/ 26 сентября 2019

Я использую элемент управления WPF DataGrid с динамическим связыванием столбцов во время выполнения (столбцы DataGrid являются динамическими)

Пример кода такой, как показано ниже

.xaml имеет код ниже

Файл
 <Style TargetType="ComboBox" x:Key="ComboBoxEditingStyle">
                <Setter Property="ItemsSource" Value="{Binding Path=DefinedFormatters}" />
                <Setter Property="IsDropDownOpen" Value="False" />
                <Setter Property="IsEditable" Value="True" />
                <Setter Property="SelectedValue" Value="Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                <Setter Property="ItemTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock Text="{Binding Path=Name}"></TextBlock>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

.xaml.cs имеет следующий код:

 Binding theBinding  = new Binding();
 theBinding.Mode = BindingMode.TwoWay;
 theBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
 theBinding.ValidatesOnDataErrors = true;

 DataGridComboBoxColumn colSuggestionList = new DataGridComboBoxColumn();

 // theCollection is Collection<string>     
 colSuggestionList.ItemsSource = theCollection;


 colSuggestionList.SelectedValueBinding = theBinding;
 colSuggestionList.Visibility = Visibility.Visible;   
 colSuggestionList.EditingElementStyle = dgMainTemplate.FindResource("ComboBoxEditingStyle") as Style;
 // dgMainTemplate is wpf DataGrid                      
 dgMainTemplate.Columns.Add(colSuggestionList);

Столбец добавлен правильно, но я хочу сделать этот столбец редактируемым.Пользователь должен иметь возможность выбрать либо существующий элемент из доступного списка, либо ввести новое значение, которого нет в доступном списке.Здесь EditingElementStyle добавит редактируемый комбинированный список, но элементы не отображаются в комбинированном списке, пока пользователь не выберет какой-либо элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...