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>
我在 EditingElementStyle 和 ElementStyle 上写了 <Setter Property="SelectedIndex" Value="0" />
,但什么也没发生,也不起作用。
您在 XAML 中设置了 SelectedItemBinding
,因此所选项目是从您的视图模型同步的,很可能是 null
。如果您从数据网格组合框列定义中删除绑定,此 setter 有效。
<Setter Property="SelectedIndex" Value="0" />
但是,最简单的解决方案是保持所选项目绑定,并在分配或填充模型时将模型中的 Version
属性 设置为集合中的第一个项目。
Version = Versions[0];
那么ComboBox
会把这个item作为选中的item,不需要加setter。
我希望自动选择每个组合框的第一项。
<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>
我在 EditingElementStyle 和 ElementStyle 上写了 <Setter Property="SelectedIndex" Value="0" />
,但什么也没发生,也不起作用。
您在 XAML 中设置了 SelectedItemBinding
,因此所选项目是从您的视图模型同步的,很可能是 null
。如果您从数据网格组合框列定义中删除绑定,此 setter 有效。
<Setter Property="SelectedIndex" Value="0" />
但是,最简单的解决方案是保持所选项目绑定,并在分配或填充模型时将模型中的 Version
属性 设置为集合中的第一个项目。
Version = Versions[0];
那么ComboBox
会把这个item作为选中的item,不需要加setter。