Эй, там! Вот мой вопрос:WPF DataGrid ComboBox Column: Распространение заголовка Combobox во всей колонке
У меня есть Datagrid в WPF, и у меня есть первый столбец, который является DataGridComboBoxColumn.
Что я хотел бы сделать, так это иметь заголовок для этого столбца также с помощью combobox: изменение заголовка с распространением по всему столбцу.
Я могу сделать это визуально, но когда я отправляю данные, список, связанный с Datagrid, не несет новых значений combobox.
<dg:DataGridComboBoxColumn SelectedItemBinding="{Binding BIBStatus}"
ItemsSource="{Binding Source={StaticResource typeStatus}}"
Width="0.20*">
<dg:DataGridComboBoxColumn.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="Built-In Bridge"/>
<ComboBox SelectedItem="{Binding BIBStatus}"
SelectionChanged="ComboBox_SelectionChanged"
ItemsSource="{Binding Source={StaticResource typeStatus}}"/>
</StackPanel>
</DataTemplate>
</dg:DataGridComboBoxColumn.HeaderTemplate>
</dg:DataGridComboBoxColumn>
В ComboBox_SelectionChanged у меня есть следующий код:
DataGridColumn comboCol = this.gridResults.Columns[0];
for (int i = 0; i < this.gridResults.Items.Count; i++)
{
ComboBox myCmBox = (comboCol.GetCellContent(this.gridResults.Items[i]) as ComboBox);
myCmBox.SelectedValue = ((ComboBox)sender).SelectedValue;
}
Когда я отправить данные, я представить список, который DataContext в Datagrid; если я изменяю значение первого столбца, адресующего строку за раз, то есть, щелкнув ячейку со списком в каждой строке, значения будут переданы в список в DataContext, однако, если я изменил значение первого столбца на заголовок Это не.
Может ли кто-нибудь сказать мне, что мне не хватает? Я предполагаю, что это так, как я влияю на каждую строку, но я пробовал SelectedValue, SelectedItem и SelectedIndex ... все безрезультатно.
Заранее спасибо ...
Поскольку вы выполняете двухстороннюю привязку данных, изменение источника данных должно изменить выбранный вами элемент combobox. Что происходит, когда вы напрямую устанавливаете BIBStatus? –
Я подумал об этом :), но проблема в том, что он только обновляет выпадающие списки каждой строки, когда я нажимаю на нее для редактирования ... в противном случае каждая строка остается неизменной. Я предполагаю, что проблема может заключаться в запуске события SelectionChanged в combobox каждой строки, поскольку привязка данных работает, когда я выбираю значение в каждой строке. Когда я редактирую значения comboboxes в коде позади, это событие SelectionChanged не запускается, потому что это не происходит в пользовательском интерфейсе ... любые догадки? – LostKaleb