Select ComboBox DataGridComboBoxColumn 中的第一项

Select ComboBox First item in DataGridComboBoxColumn

我希望自动选择每个组合框的第一项。

<DataGridComboBoxColumn SelectedItemBinding="{Binding Version}" >
    <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=Versions}" />
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>

    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=Versions}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>

</DataGridComboBoxColumn>

我在 EditingElementStyleElementStyle 上写了 <Setter Property="SelectedIndex" Value="0" />,但什么也没发生,也不起作用。

您在 XAML 中设置了 SelectedItemBinding,因此所选项目是从您的视图模型同步的,很可能是 null。如果您从数据网格组合框列定义中删除绑定,此 setter 有效。

<Setter Property="SelectedIndex" Value="0" />

但是,最简单的解决方案是保持所选项目绑定,并在分配或填充模型时将模型中的 Version 属性 设置为集合中的第一个项目。

Version = Versions[0];

那么ComboBox会把这个item作为选中的item,不需要加setter。