c# - 绑定(bind) DataGridComboBoxColumn SelectedIndex

标签 c# wpf datagrid

我知道之前有人问过这个问题。我正在检查是否有任何新的巧妙解决方案。有没有更好的方法来绑定(bind) DataGridComboBoxColumnSelectedIndex?这就是我在多次谷歌搜索后如何让绑定(bind)工作的:

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

最佳答案

这是绑定(bind) 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>

关于c# - 绑定(bind) DataGridComboBoxColumn SelectedIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466026/

相关文章:

c# - 如何对MainWindow使用UserControl事件

c# - 在 xaml wpf 中使用 app.config 设置

c# - 如何使 OnRender() 在控件上方而不是下方绘制?

c# - 将 Datagrid 单元格原始值与 CellEditEnding 事件中的编辑值进行比较

c# - C# 中的 void* 是什么?

c# - 什么是NullReferenceException,如何解决?

c# - 使用 C# 版本的 Quicktime 读取时间码轨道数据

c# - 为什么数组只允许在某些地方使用?

c# - 用户添加新行时无法触发 WPF 验证器

.net - 与 RowDetails 一起使用时,WPF DataGrid 的高度错误