Датагрид (редактируемая проблема, проблема доступа) в WPF - PullRequest
1 голос
/ 20 февраля 2010

Я создал Datagrid, как показано на этом рисунке -> http://img682.imageshack.us/img682/5109/datagrid.png

где пользователь должен вводить данные. В одном из столбцов я добавил Combobox. Теперь Datagrid не позволит мне вводить данные в ячейки. IsReadOnly = "False" также не работал, он выдавал "исключение EditMode". Итак, что я сделал, я создал текстовый блок и внутри него создал комбинированный список и текстовое поле, как показано здесь:

 <toolKit:DataGrid
                                 Width="725"
                                 Height="100" 
                                 HeadersVisibility="Column" 
                                 Focusable="True"
                                 RowDetailsVisibilityMode="Visible" 
                                 Background="#FF98A4B2"  x:Name="mf" >

                    <toolKit:DataGrid.Columns>
                        <toolKit:DataGridTemplateColumn Header="Ssss" Width="55">
                            <toolKit:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock>
                         <TextBox x:Name="mf_step" Width="50"/>
                        </TextBlock>
                                </DataTemplate>
                            </toolKit:DataGridTemplateColumn.CellTemplate>
                        </toolKit:DataGridTemplateColumn>
                        <toolKit:DataGridTemplateColumn Header="Aaaaa" Width="100">
                            <toolKit:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock>
                                      <ComboBox x:Name="cmb_act_mf" ToolTip="Choose Actor" Width="95" IsEditable="False">
                                      <ComboBoxItem Content=""></ComboBoxItem>
                                      <ComboBoxItem Content="Uuuu" IsSelected="True"></ComboBoxItem>
                                      </ComboBox>
                                    </TextBlock>
                                </DataTemplate>
                            </toolKit:DataGridTemplateColumn.CellTemplate>

                        </toolKit:DataGridTemplateColumn>

Используя этого пользователя, можно добавлять текст в ячейки, НО я сам не доволен этим моим подходом :(. С его использованием, я думаю, я не смогу получить доступ к введенному контенту для другого использования, например, для сохранения в какой-то Datastructure или DB ............. Также я не могу добавлять содержимое в комбинированный список с помощью текстового поля (при нажатии кнопки, как предложено в предыдущий вопрос ), когда я использую этот код {cmb_act_mf.Items.Add (txt_box.Text); } ... это тоже не сработает. .................. Как сделать Datagrid редактируемым? со списком в одном из его столбцов, так что его список / контент может быть добавлен через текстовое поле при нажатии кнопки. И я могу легко получить доступ к содержимому ячейки (куда входит пользователь) в DS / DB ..... Является ли Datagrid правильным выбором? Пожалуйста помоги.

Большое спасибо заранее. Цени любую помощь, фрагмент кода будет благословением. Спасибо.

1 Ответ

0 голосов
/ 25 февраля 2010

Сетка данных MS WPF ориентирована главным образом на привязку данных. Попробуйте создать объект для привязки, и вместо DataGridTemplateColumn используйте DataGridTextColumn и DataGridComboBoxColumn, и редактирование должно быть таким, как вы ожидали. Однако, чтобы получить значения, вам нужно получить доступ к свойствам связанного объекта.

...