我有一个绑定到源的wpf datagridview 源是手动从数据库填充的数据集
有一个datagridcomboboxcolumn
我已将列的项目源设置为数据集(DSGLAccounts.tables..etc), 将displaymemberpath设置为列名“Account_ID”;
并且它已成功显示帐户列表 但是当我在运行时选择一个项目时,当我导航到另一个单元格并且只是消失时,单元格不会保留它
现在我无法理解如何使选择的索引等于某个值,具体取决于作为网格视图源的数据集(DSRegisters)
我需要知道如何设置所选索引 我想我必须知道属性(SelectedItemBinding / SelectedValueBinding / SelectedValuePath)
这是表格
这是我的愚蠢代码:)
<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,需要帮助,如果有一个例子或类似的东西,那将是非常有帮助的
答案 0 :(得分:0)
保持选定值的解决方案 - 只需在后面的代码中添加类似的内容:
COL.SelectedItemBinding = New Binding("SelectedItem");