Dropdown im DataGrid

  • WPF

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ComX.

    Dropdown im DataGrid

    Hallo zusammen,

    bin neu hier, und auch neu im Bereich WPF unterwegs..
    Bin hier an nem kleinen Projekt und hab ein DataGrid erstellt, indem oben verschiedene Spalten angelegt sind, die aus der ListBox Daten anzeigen.
    Nun möche ich bei 2 Spalten (Bemassung, und Platztyp) ein Dropdown zur Auswahl von 2-3 weiteren sachen haben.
    Bekomme dies aber irgendwie nicht hin.

    So sieht der Code aus:

    VB.NET-Quellcode

    1. <Grid>
    2. <ScrollViewer Margin="0,0,-444,0">
    3. <ItemsControl Name="Tree" Width="Auto" Height="Auto">
    4. <Label Content="Ebenen Templates" FontStyle="Italic" Foreground="WhiteSmoke" Width="116" HorizontalAlignment="Left" Margin="7,0,0,0" FontWeight="Bold"/>
    5. <StackPanel Orientation="Horizontal">
    6. <ListBox x:Name="TEmplateItems" HorizontalAlignment="Left" Height="563" Width="355" Margin="10,0,0,0" RenderTransformOrigin="0.43,-1.672" BorderBrush="#FF11F5F5">
    7. <ListBox.Effect>
    8. <DropShadowEffect BlurRadius="8" Color="#FF0ACFEE" />
    9. </ListBox.Effect>
    10. </ListBox>
    11. <DataGrid x:Name="DG_Lagerplaetze" Grid.Column="1" Grid.Row="1" Height="Auto" Width="899" AutoGenerateColumns="False" SelectionChanged="DataGrid_SelectionChanged">
    12. <DataGrid.Columns>
    13. <DataGridTextColumn Binding="{Binding Name}" Header="Name" />
    14. <DataGridTextColumn Binding="{Binding Index}" Header="Index" />
    15. <DataGridTextColumn Binding="{Binding Bemassung}" Header="Bemassung" />
    16. <DataGridTextColumn Binding="{Binding Teilebene}" Header="Teilebene" />
    17. <DataGridTextColumn Binding="{Binding Teilplatz}" Header="Teilplatz" />
    18. <DataGridTextColumn Binding="{Binding EP_X}" Header="EP_X" />
    19. <DataGridTextColumn Binding="{Binding EP_Y}" Header="EP_Y" />
    20. <DataGridTextColumn Binding="{Binding ADD_Z}" Header="ADD_Z" />
    21. <DataGridTextColumn Binding="{Binding Platztyp}" Header="Platztyp" />
    22. </DataGrid.Columns>
    23. </DataGrid>
    24. </StackPanel>
    25. <Button Content="Regal Übernehmen" Width="118" HorizontalAlignment="Left" Margin="10,3,0,0"/>
    26. </ItemsControl>
    27. </ScrollViewer>
    28. </Grid>

    Hoffe es ist so zu lesen, oder gibts hier eine funktion um den Text passend einzurücken ?(
    sieht schon besser aus.. Thx a.b_om

    Hab es jetzt in Zeile 27 so geändert:
    <DataGridComboBoxColumn x:Name="DGPLATZTYP" SelectedItemBinding="{Binding Platztyp}" Header="Platztyp" />
    und im Code behind:
    DGPLATZTYP.ItemsSource = {"PALPLA", "DLP", "FB"}

    jetzt funktioniert der Dropdown mit den 3 auswahlmöglichkeiten.
    Jedoch ist es irgendwie komisch.. ich muss erst auf die spalte klicken wenn ich eins von den 3 auswählen will, dann nochmal auf den Pfeil, dann nochmal und ich sehe die 3 die zur Auswahl stehen.
    Geht das irgendwie beim ersten Klick.-?
    Ist etwas komisch so.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „ComX“ ()

    Hallo

    Deinem Edit entnehme ich das du nun mit Binding arbeitest. Das ist gut. Gerade beim DataGrid ist das "hanatieren" mit code sehr umständich.

    Bez. deinem Problem mit den zwei Kicks. Probier folgendes mal:

    XML-Quellcode

    1. <DataGridComboBoxColumn
    2. Header="Example">
    3. <DataGridComboBoxColumn.EditingElementStyle>
    4. <Style TargetType="ComboBox">
    5. <Setter Property="IsDropDownOpen" Value="True" />
    6. </Style>
    7. </DataGridComboBoxColumn.EditingElementStyle>
    8. </DataGridComboBoxColumn>


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Bester Mann.!!

    Jetzt gehts mit Zeile auswählen, und beim zweiten Klick kommt das Dropdown.

    TOP.!!! Dank dir..

    Direkt beim ersten Klick geht es evtl auch.?
    Hab da was gefunden, was sofort das Dropdown öffnet.. weiß aber nicht wie ich das zusammen bekomme.

    VB.NET-Quellcode

    1. <!--<StackPanel Margin="10">
    2. <ComboBox>
    3. <ComboBoxItem>
    4. <StackPanel Orientation="Horizontal">
    5. <TextBlock Foreground="Red"><Run Text="Red"/></TextBlock>
    6. </StackPanel>
    7. </ComboBoxItem>
    8. <ComboBoxItem>
    9. <StackPanel Orientation="Horizontal">
    10. <TextBlock Foreground="Green"><Run Text="Green"/></TextBlock>
    11. </StackPanel>
    12. </ComboBoxItem>
    13. <ComboBoxItem>
    14. <StackPanel Orientation="Horizontal">
    15. <TextBlock Foreground="Blue"><Run Text="Blue"/></TextBlock>
    16. </StackPanel>
    17. </ComboBoxItem>
    18. </ComboBox>
    19. </StackPanel>-->


    Oder is das wieder was anderes.?

    ComX schrieb:

    Oder is das wieder was anderes.?

    Das ändert am Dorpdown genau garnichts.

    Ist doch nur ein Dropdown mit drei Items. Nicht mehr nicht weniger.

    Damit es mit nur einem Click geht benötigt es Code und finde ich unschön. Grund: Erst muss die Zelle in den "EditMode". Eine Zelle mit einer Textbox ist auch nur durch zweimaliges klicken editierbar.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##