4

これは以前に尋ねられたことを知っています。新しい巧妙な解決策がないかどうかを確認しています。SelectedIndexa のをバインドするより良い方法はありDataGridComboBoxColumnますか? これは、多くのグーグル検索の後にバインディングを機能させる方法です。

<!-- This is a little ridiculous -->
<DataGridComboBoxColumn Header="Batch Type"
    ItemsSource="{Binding Source={StaticResource methodOfPaymentItemsProvider}}">

    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="SelectedIndex" 
                    Value="{Binding MethodOfPayment, 
                                    UpdateSourceTrigger=PropertyChanged}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>
    <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="SelectedIndex" 
                    Value="{Binding MethodOfPayment, 
                                    UpdateSourceTrigger=PropertyChanged}" />
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
4

1 に答える 1

1

これは、DataGridComboBoxColumn の SelectedIndex、ItemSource、IsReadOnly をバインドするための最良の答えです。

<DataGridComboBoxColumn Header="Batch Type"
  ItemsSource="{Binding Source={StaticResource methodOfPaymentItemsProvider}}">

  <DataGridComboBoxColumn.ElementStyle>
    <Style TargetType="ComboBox">
        <Setter Property="SelectedIndex" Value="{Binding MethodOfPayment,  UpdateSourceTrigger=PropertyChanged}" />
        <Setter Property="ItemsSource" Value="{Binding Streets, RelativeSource= {RelativeSource FindAncestor,AncestorType=UserControl}, Mode=OneWay}"/>
        <Setter Property="IsReadOnly" Value="True"/>
    </Style>
 </DataGridComboBoxColumn.ElementStyle>
 <DataGridComboBoxColumn.EditingElementStyle>
    <Style TargetType="ComboBox">
        <Setter Property="SelectedIndex" Value="{Binding MethodOfPayment, UpdateSourceTrigger=PropertyChanged}" />
        <Setter Property="ItemsSource" Value="{Binding Streets, RelativeSource={RelativeSource FindAncestor,AncestorType=UserControl}, Mode=OneWay}"/>
     </Style>
 </DataGridComboBoxColumn.EditingElementStyle>
 </DataGridComboBoxColumn>
于 2014-09-15T12:24:51.743 に答える