2011-03-28 65 views
0

我有一个绑定到一个源 源一个WPF的DataGridView是从数据库填充数据集手动Datagridviewcomboboxcolumn让我生气

有一个datagridcomboboxcolumn

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

,它的成功显示帐户列表 但是当我在运行时sellect一个项目,该小区不把它当我导航到另一个细胞,只是消失

现在我无法理解如何使sellected索引等于某个值,这取决于是在网格视图的源的数据集(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是一个数据集包含应该在显示的记录代码datagrid DSGLAccounts是datagridcombobox应该在其中的数据集结合

还当我在运行时,正如我所说的,从ComboBox中选择一个值时,不守sellection当我离开细胞,仿佛它是不可编辑

我是noooob在WPF中,需要帮助请,如果有一个例子或类似这样的东西,那将是非常有益的

回答

0

解决方案以保持选择的值 - 只是代码添加这样的事情背后:

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