绑定DataGridComboBoxColumn的SelectedIndex

4

我知道这个问题以前已经被问过。我想确认是否有任何新的巧妙解决方案。是否有更好的方法可以绑定DataGridComboBoxColumnSelectedIndex? 这是我搜索了很多后得到的绑定方式:

<!-- 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>
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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接