2011-02-13 5 views
1

J'ai un datagrid avec une colonne modèle et un combobox à l'intérieur. J'ai aussi une autre combobox qui ne sont pas à l'intérieur du datagrid:WPF ComboBox dans DataGrid n'affiche pas la valeur sélectionnée

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

Maintenant, la chose étrange et le problème est que, dans ce cas, le combo1 intérieur du datagrid, en mode d'édition, montre correctement la valeur de la ligne sélectionnée, mais si Je supprime le combo2 le combo1 cesse de fonctionner et ne montre plus la valeur de ligne sélectionnée mais la première valeur de la liste combobox.

Pourquoi cela se produit-il? Le combo2 est exactement le même combobox que le combo1.

Répondre

1

Ils se lient tous deux à la même valeur SelectedValue. Si vous supprimez (éditez) la valeur SelectedValue, la valeur sélectionnée n'est plus dans ItemsSource. Si vous sélectionnez (pas éditer) une valeur à partir du menu déroulant, cela fonctionne-t-il?

Questions connexes