【发布时间】: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 列表的第一个值。
为什么会这样? combo2 与 combobox 与 combo1 完全相同。
【问题讨论】:
标签: .net wpf data-binding datagrid combobox