C# [silverlight] Listbox in eine DataGrid einbinden

tonikln

Lt. Junior Grade
Registriert
Aug. 2005
Beiträge
314
Hallo zusammen,

ich hab mal eine Frage:
kann man eine ListBox in eine DataGrid Zelle einbinden?
bin nämlich die ganze Zeit am suchen, aber finde leider nix brauchbares :(

Ich würde mich über jeden Tipp von euch freuen...
 
ich würde einen eigenen Zellentyp schreiben.

Am einfachsten ist es, von DataGridViewCell abzuleiten und dann die benötigten Methoden/Properties/Attribute hinzuzufügen. In deinem Fall wäre das erstmal eine Listbox.

Dann musst du die Paint-Methode der Zelle überschreiben und zusätzlich zur Basismethode noch die Listbox rendern, die ja auch eine Paint-Methode besitzt. Dort übergibst du einfach den Grafikkontext der Zelle und setzt eventuell die Bounding-Box der Listbox neu.

Darüber hinaus kannst du, je nachdem was du brauchst ebenfalls die OnClick oder OnDoubleKlick-Methoden überarbeiten und bestimmte Aktionen an deine Listbox weitergeben.
 
Kagee schrieb:
ich würde einen eigenen Zellentyp schreiben.

Am einfachsten ist es, von DataGridViewCell abzuleiten und dann die benötigten Methoden/Properties/Attribute hinzuzufügen. In deinem Fall wäre das erstmal eine Listbox.

Dann musst du die Paint-Methode der Zelle überschreiben und zusätzlich zur Basismethode noch die Listbox rendern, die ja auch eine Paint-Methode besitzt. Dort übergibst du einfach den Grafikkontext der Zelle und setzt eventuell die Bounding-Box der Listbox neu.

Darüber hinaus kannst du, je nachdem was du brauchst ebenfalls die OnClick oder OnDoubleKlick-Methoden überarbeiten und bestimmte Aktionen an deine Listbox weitergeben.

Unsinnig,laut Titel will er das mit Silverlight machen, Silverlights Frontend Framework ist WPF. Heißt also du du kannst im Xaml ein ItemTemplate für jede DataGridView Zelle anlegen und da ist dir deiner Fantasie, inklusive deine Listbox, keine Grenze gelassen ;)
 
Im moment habe ich es so:

Code:
        <data:DataGrid x:Name="dgAusgabe" Margin="23,8,25,18" Grid.Column="1" Grid.Row="2" 
                   CanUserResizeColumns="True" xmlns:my="clrnamespace:
                    System.Windows.Controls;assembly=System.Windows.Controls.Data" >
            
            <data:DataGrid.Columns>
                <data:DataGridTemplateColumn>
                    <data:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox x:Name="cbxName" Height="24" Width="120" DropDownOpened="cbxName_DropDownOpened" />
                        </DataTemplate>
                    </data:DataGridTemplateColumn.CellTemplate>
                </data:DataGridTemplateColumn>
            </data:DataGrid.Columns

        </data:DataGrid>

Nur leider mach es eine neue Spalte und die ComboBox ist leer.
Ich möchte aber für jede Zelle ein ComboBox haben
was fehlt denn da noch :(
 
Ich hab das hinbekommen ... Die ComboBox wird gefüllt...

Leider fehlt mir nur noch folgendes:

Ich möchte in jeder Zelle ein ComboBox template haben.
Ich habe es nur in einer einzigen Spalte, die zusätzlich erstellt wird :(

Wie bekomm ich es denn hin, dass ich eine ComboBox in jeder Zelle erstelle ??
 
Kleine änderung....

Ich denke besser wäre es, wenn ich in der ersten Spalte nur Checkboxes einfüge und wenn die ausgewählt ist, dann soll die aktuelle Zeile mit Comboboxes angezeigt werden...

nur leider bekomm ich das auch nicht hin :(
Hat jemand einen kleinen Tipp ?
 
Zurück
Oben