WPF ComboBox в DataGrid не отображает выбранное значение - PullRequest
1 голос
/ 14 февраля 2011

У меня есть 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>

Теперь странная вещь и проблема в том, что в этом случае combo1 внутри datagrid в режиме редактирования правильно показывает выбранное значение строки, НО, если я удаляю combo2, combo1 перестает работать и больше не показывает выбранное значение строки, а вместо этого первое значение из списка combobox.

Почему это происходит? combo2 точно такой же combobox, что и combo1.

1 Ответ

1 голос
/ 20 июля 2011

Они оба связаны с одним и тем же SelectedValue.Если вы удалите (отредактируете) SelectedValue, то выбранное значение больше не будет в ItemsSource.Если вы выбираете (не редактируете) значение из выпадающего меню, оно работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...