0

ソースにバインドされている wpf datagridview があります。ソースは、データベースから手動で入力されたデータセットです。

データグリッドコンボボックス列があります

列のアイテム ソースをデータセット (DSGLAccounts.tables..etc) に設定し、displaymemberpath を列名 "Account_ID" に設定しました。

アカウントリストは正常に表示されますが、実行時にアイテムを選択すると、別のセルに移動するとセルが保持されず、消えてしまいます

今、グリッド ビュー (DSRegisters) のソースであるデータセットに応じて、選択されたインデックスをある値に等しくする方法を理解できません。

選択したインデックスを設定する方法を知る必要があります プロパティ (SelectedItemBinding/SelectedValueBinding/SelectedValuePath) について知る必要があると思います

フォームはこちら

wpf フォームからのスナップショット これが私の愚かなコードです:)

            <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です。助けが必要です。例やこのようなものがあれば、非常に役に立ちます

4

1 に答える 1

0

選択した値を維持するためのソリューション-コードビハインドに次のようなものを追加するだけです:

COL.SelectedItemBinding = New Binding("SelectedItem");
于 2011-10-06T12:11:37.560 に答える