-2

ItemsSource を使用してリストの最初の項目にデフォルト設定される Combobox があります。

<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 に答える