Показать значение WPF DataGridComboBoxColumn при загрузке DataGrid (MVVM) - PullRequest
0 голосов
/ 22 апреля 2020

На мой взгляд, я использую DataGrid для отображения и редактирования записей в базе данных. Теперь мне нужно заменить одну из DataGridTextColumn на DataGridComboBoxColumn. Оставшиеся DataGridTextColumn s заполняются ObservableCollection (CurrentFilters), но CombBox принимает значения stati c из перечисления, превращенного в список (FilternameList).
Я сделал это так, чтобы пользователь не может просто что-то записать в указанный столбец c и должен использовать предопределенные значения.
Проблема в том, что DataGridComboBoxColumn не отображает никаких значений при (повторной) загрузке Посмотреть. Существует также проблема - или что-то, чего я действительно не понимаю - с тем, как значения, выбранные в ComboBox, отображаются после их выбора.

Вот таблица данных:


<DataGrid ItemsSource="{Binding CurrentFilters, Mode=TwoWay}" Grid.Row="1" SelectionMode="Single" ClipboardCopyMode="IncludeHeader" UseLayoutRounding="True" SelectionUnit="FullRow" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="ID" Binding="{Binding Id}" Width="Auto" IsReadOnly="True"/>
        <DataGridTextColumn Header="Contraction" Binding="{Binding ChannelId, Converter={cv:IDtoContractionConverter}}" Width="Auto"/>
        <DataGridComboBoxColumn Header="FilterName" Width="Auto" 
            ItemsSource="{Binding Source={x:Static vm:ConfigViewModel.FilternameList}}"
            SelectedItemBinding="{Binding FilterName, Mode=TwoWay}"/>
        <DataGridTextColumn Header="FilterCharValue" Binding="{Binding FilterCharValue}" Width="300"/>
        <DataGridTextColumn Header="FilterNumberValue" Binding="{Binding FilterNumberValue}" Width="140"/>
        <DataGridTextColumn Header="FilterDescription" Binding="{Binding FilterDescription}" Width="Auto"/>
    </DataGrid.Columns>
</DataGrid>

Вот как выглядит мой текущий прогресс: Current Progress

Первая строка - это то, как выглядит столбец FilterName прямо сейчас, при загрузке DataGrid.
Вторая строка - это то, как это выглядит, когда выбрав новое значение из ComboBox. Это также значение по умолчанию при загрузке DataGrid. Значения есть, я просто не знаю, как их отобразить.
Третья строка показывает ComboBox, заполненную значениями перечисления, которые можно выбрать.


tl; dr : мне нужно найти способ показать значения из ObservableCollection после их изменения во время выполнения, в DataGridComboBoxColumn при загрузке / редактировании DataGrid.

...