这应该很简单,但我所有的搜索结果都是基于绑定的解决方案,而这不是我的情况。
我有一个 DataGrid
,其中有一个 DataGridComboBoxColumn
。这个列的 ItemsSource
属性绑定到一个字符串数组。在启动时,我使用循环通过以下代码为我的 DataGrid 的每一行设置此列的 SelectedItem
:
for (int i = 0; i < dgResults.Items.Count; i++)
{
var x = dgResults.GetCell(i, 0).Content as System.Windows.Controls.ComboBox;
x.SelectedItem = "One of the items of my array";
}
GetCell()
是我从这里获取的扩展方法。现在的问题是,当我点击该列中的特定单元格时,在单元格中会出现下拉菜单,并且所有的数组项目都已正确填充到下拉菜单中,但是下拉菜单的当前文本为空,即它不会自动选择相应的下拉菜单项目。我漏掉了什么? 编辑 这是我DataGrid的相关部分:
<DataGrid x:Name="dgResults" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridComboBoxColumn ItemsSource="{StaticResource ReminderValues }" />
</DataGrid.Columns>
</DataGrid>
如您所见,这个特定的列没有绑定到底层的DataColumn或其他东西,尽管整个DataGrid绑定到一个DataTable。此外,我可以确定这不是一个拼写错误。
SelectedItem
创建一个绑定,而不是像您现在试图做的那样手动设置它。 - MBender