(см. Ниже мой собственный ответ, который я придумал после того, как разрешил эту фильтрацию для дней и дней). Я пытаюсь достичь следующего сценария в WPF.
У меня есть сетка данных, которая отображает строкиданные для просмотра и дополнительный ввод данных.Это новое приложение, но в нем есть устаревшие данные.
В одно конкретное поле в прошлом случайным образом вводились данные.Теперь мы хотим ограничить значения этого поля определенным списком.Поэтому я использую DataGridComboBoxColumn.FWIW В качестве альтернативы я попробовал это с DataGridTemplateColumn, содержащим ComboBox.
Во время выполнения, если существующее значение отсутствует в списке, я хочу, чтобы оно отображалось в любом случае.Я просто не могу этого добиться.Несмотря на то, что я пытался использовать огромное количество решений (все сбои), вот наиболее логичная в качестве отправной точки.
Список значений для раскрывающегося списка определен в ресурсе Windows, который называется «месяцы»..
<DataGridComboBoxColumn x:Name="frequencyCombo" MinWidth="100" Header="Frequency"
ItemsSource="{Binding Source={StaticResource months}}"
SelectedValueBinding="{Binding Path=Frequency,UpdateSourceTrigger=PropertyChanged}">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
Происходит следующее: если значение отсутствует в списке, на дисплее ничего не отображается.Во время выполнения я убедился, что элемент IsSynchronizedWithCurrentItem действительно имеет значение False.Просто я не делаю то, что ожидаю.
Возможно, я просто иду по неверному пути здесь.Может быть, мне нужно использовать текстовое поле в сочетании с выпадающим списком.Может быть, мне нужно написать код, а не только XAML.Я часами пробовал разные вещи и был бы очень благодарен за решение.У меня было несколько предложений использовать этот класс или этот элемент управления, но без объяснения как его использовать.
Спасибо большое!