2010-02-20 6 views
1

J'ai créé un Datagrid, comme le montre ce chiffre ->http://img682.imageshack.us/img682/5109/datagrid.pngDatagrid (question modifiable, problème d'accès) dans WPF

où l'utilisateur est censé entrer des données. Dans l'une des colonnes, j'ai ajouté Combobox. Maintenant, le Datagrid ne me permettra pas d'entrer des données dans les cellules. IsReadOnly = "False" ne fonctionnait pas non plus, il donnait une certaine "exception EditMode". Alors, ce que je ne l'étais, j'ai créé textblock et en son sein créé combobox et zone de texte comme indiqué ici:

<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> 

En utilisant cet utilisateur peut ajouter du texte dans les cellules, mais je me suis, je ne suis pas satisfait de cette approche de mine :(. En utilisant cela, je pense que je ne serai pas en mesure d'accéder au contenu entré, pour un autre usage, comme l'enregistrement dans une sorte de Datastructure ou DB ............. Je ne suis pas en mesure d'ajouter du contenu à la liste déroulante, en utilisant la zone de texte (sur le bouton, comme suggéré dans previous question), quand j'utilise ce code {cmb_act_mf.Items.Add (txt_box.Text);} ... cela ne fonctionnera pas non plus. .................. Comment faire de Datagrid éditable? Avec une liste déroulante dans une de ses colonnes, de sorte que sa liste/contenu peut être ajouté via la zone de texte sur le bouton clic k. Et je peux accéder, le contenu de la cellule (où l'utilisateur entre) avec la facilité d'être stocké dans DS/DB ..... Est-ce que le bon choix de Datagrid? S'il vous plaît aider.

Merci beaucoup d'avance. Appréciez toute aide, l'extrait de code sera une bénédiction. Merci.

+0

La zone de texte définissant les options de la zone de liste déroulante contient-elle également une cellule de grille de données sur la même ligne? Ou est-ce externe à la grille? – Gishu

Répondre

0

La grille de données MS WPF est principalement axée sur la liaison de données. Essayez de créer un objet à lier à, et au lieu d'utiliser DataGridTemplateColumn, utilisez DataGridTextColumn et DataGridComboBoxColumn et l'édition doit être comme prévu. Cependant, pour obtenir les valeurs dont vous aurez besoin pour accéder aux propriétés de l'objet lié.