Datagridview comboboxcolumn меня бесит - PullRequest
0 голосов
/ 29 марта 2011

У меня есть сетевое представление данных wpf, которое связано с источником. Источник - это набор данных, заполненный из базы данных вручную

, существует сетка данных comboboxcolumn

я установил источник элементов столбца в набор данных(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 - набор данных, содержащий records, которые должны отображаться в сетке данных DSGLAccounts - это набор данных, к которому должен быть привязан блок данных domagridcombobox

также, когда я во время выполнения, как я сказал, при выборе значения из комбинированного списка он не сохраняет выбор, когда япокинуть ячейку, как если бы она не редактировалась

я noooob в wpf, нужна помощь, пожалуйста, если есть пример или что-то подобное, это было бы очень полезно

1 Ответ

0 голосов
/ 06 октября 2011

Решение для сохранения выбранного значения - просто добавьте что-то вроде этого в коде:

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