使用SelectedIndex选择列表中的第一项

时间:2012-10-05 22:53:45

标签: c# wpf

我有一个Combobox,使用

默认为ItemsSource列表中的第一项
<ComboBox  x:Name="combo" 
           SelectedIndex="0" 
           ItemsSource="{Binding comboBoxSelections, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" 
           DisplayMemberPath="Key" 
           IsEditable="True" >

但是,下面没有正确绑定到DataTable 当我向SelectedValue添加绑定时,它现在正确绑定但不再默认为第一个项目;
SelectedIndex="0"现在无法使用

<ComboBox  x:Name="combo" 
           SelectedValue="{Binding Selection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
           SelectedIndex="0" 
           ItemsSource="{Binding comboBoxSelections, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" 
           DisplayMemberPath="Key" 
           IsEditable="True" >

是否可以仅在XAML中初始化值?

我认为我不能从构造函数中设置它,因为combo不是单个Combobox而是DataGridComboBoxColumn的一部分

<DataGrid.Columns>
    <DataGridComboBoxColumn Header="Department Id" x:Name="comboboxColumn1"
            SelectedValueBinding="{Binding Department Id}" />
        <DataGridTemplateColumn x:Name="DataGridTempCol" Header="Selection">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox  
                      x:Name="combo" 
                      SelectedValue="{Binding Selection, Mode=TwoWay,   UpdateSourceTrigger=PropertyChanged}" 
                      ItemsSource="{Binding comboBoxSelections, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"  
                      DisplayMemberPath="Key" 
                      IsEditable="True" >
                    </ComboBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>

1 个答案:

答案 0 :(得分:2)

将SelectedValue设置为ctor中的第一行。