-2

我有一个组合框,它默认为 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>
4

1 回答 1

2

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

于 2012-10-05T23:33:56.960 回答