【问题标题】:WPF ComboBox in DataGrid Doesn't Display Selected ValueDataGrid 中的 WPF 组合框不显示所选值
【发布时间】:2011-06-26 15:00:54
【问题描述】:

我有一个datagrid,里面有一个模板列和一个combobox。我还有另一个combobox 不在datagrid 内:

<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" 
        ItemsSource="{Binding Source={StaticResource asientoDetallesAsientosViewSource}}" 
        Name="detallesAsientosDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" >
<DataGrid.Columns>
    <DataGridTemplateColumn Header="Cuenta">
        <DataGridTemplateColumn.CellEditingTemplate>
            <DataTemplate>
                <ComboBox Grid.Column="1" Grid.Row="0" 
                            Name="combo1"
                            ItemsSource="{Binding Source={StaticResource cuentaListaViewSource}}"
                            SelectedValuePath="Numero"
                            DisplayMemberPath="Nombre"
                            SelectedValue="{Binding ElementName=detallesAsientosDataGrid, Path=SelectedItem.Numero}">
                    <ComboBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <VirtualizingStackPanel />
                        </ItemsPanelTemplate>
                    </ComboBox.ItemsPanel>
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellEditingTemplate>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Path=Numero}" />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<ComboBox Name="combo2"
            ItemsSource="{Binding Source={StaticResource cuentaListaViewSource}}"  
            SelectedValuePath="Numero"
            DisplayMemberPath="Nombre"
            SelectedValue="{Binding ElementName=detallesAsientosDataGrid,
                            Path=SelectedItem.Numero}"
            VerticalAlignment="Center" Width="120">
    <ComboBox.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel />
        </ItemsPanelTemplate>
    </ComboBox.ItemsPanel>
</ComboBox>

现在奇怪的事情是,在这种情况下,datagrid 内的combo1 在编辑模式下会正确显示选定的行值但是如果我删除combo2 combo1 停止工作并且不再显示选定的行值,而是显示combobox 列表的第一个值。

为什么会这样? combo2comboboxcombo1 完全相同。

【问题讨论】:

    标签: .net wpf data-binding datagrid combobox


    【解决方案1】:

    它们都绑定到同一个 SelectedValue。如果您删除(编辑)SelectedValue,则所选值不再在 ItemsSource 中。如果您从下拉菜单中选择(而不是编辑)一个值,它会起作用吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多