Datagridviewcomboboxcolumn让我发疯

时间:2011-03-28 20:00:50

标签: wpf datagridview datagridcomboboxcolumn

我有一个绑定到源的wpf datagridview 源是手动从数据库填充的数据集

有一个datagridcomboboxcolumn

我已将列的项目源设置为数据集(DSGLAccounts.tables..etc), 将displaymemberpath设置为列名“Account_ID”;

并且它已成功显示帐户列表 但是当我在运行时选择一个项目时,当我导航到另一个单元格并且只是消失时,单元格不会保留它

现在我无法理解如何使选择的索引等于某个值,具体取决于作为网格视图源的数据集(DSRegisters)

我需要知道如何设置所选索引 我想我必须知道属性(SelectedItemBinding / SelectedValueBinding / SelectedValuePath)

这是表格

Snapshot from wpf form 这是我的愚蠢代码:)

            <DataGrid Name="dgv_Accounts" Width="Auto" Height="Auto" AutoGenerateColumns="False"  VerticalAlignment="Stretch" 
                                          HorizontalAlignment="Stretch" HeadersVisibility="Column" CanUserReorderColumns="False" CanUserResizeColumns="False"
                                          CanUserSortColumns="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Visible" 
                                          BorderBrush="Gray" BorderThickness="0" HorizontalGridLinesBrush="Gray" VerticalGridLinesBrush="Gray"
                                      AreRowDetailsFrozen="False" CanUserResizeRows="False" RowDetailsVisibilityMode="Visible" RowHeight="20" SelectionMode="Extended"
                                          FlowDirection="LeftToRight" GridLinesVisibility="All" UseLayoutRounding="True" EnableColumnVirtualization="True" 
                                          FontFamily="DFKai-SB" FontWeight="Bold" FontStyle="Normal" Grid.Row="5" CellEditEnding="dgv_Accounts_CellEditEnding" RowEditEnding="dgv_Accounts_RowEditEnding">

            <DataGrid.Columns>
                <DataGridComboBoxColumn Header="GL Account"  Width="*" >
                </DataGridComboBoxColumn>
                <DataGridTextColumn Header="Description" Width="*" Binding="{Binding Path=Transc_desc, Mode=TwoWay}"/>
                <DataGridTextColumn Header="Debit" Width="*" Binding="{Binding Path=Debit}"/>
                <DataGridTextColumn Header="Credit" Width="*" Binding="{Binding Path=Credit}"/>
                <DataGridTextColumn Header="Job" Width="*"/>
            </DataGrid.Columns>
        </DataGrid>

背后的代码

            dgv_Accounts.ItemsSource = DSRegisters.Tables[0].DefaultView;


        DataGridComboBoxColumn COL = ((DataGridComboBoxColumn)(dgv_Accounts.Columns[0]));
        COL.ItemsSource = DSGLAccount.Tables[0].DefaultView;
        COL.DisplayMemberPath = "Account_ID";

其中

DSRegister是一个数据集,包含应在数据网格上显示的记录 DSGLAccounts是datagridcombobox应绑定到的数据集

当我在运行时正如我所说的那样,当从组合框中选择一个值时,当我离开单元格时它不会保持选择,就好像它是不可编辑的

我是wpf的noooob,需要帮助,如果有一个例子或类似的东西,那将是非常有帮助的

1 个答案:

答案 0 :(得分:0)

保持选定值的解决方案 - 只需在后面的代码中添加类似的内容:

COL.SelectedItemBinding = New Binding("SelectedItem");