Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Drag Drop auf ein ComboboxItem
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

Drag Drop auf ein ComboboxItem

beantworten | zitieren | melden

Hallo zusammen,

<ComboBox
                        x:Name="DropdownSelection"
                        AllowDrop="True"
                        DragOver="DropdownSelection_DragOver"                        
                        DataContext="{Binding ToolBar.ViewModel}"
                        Style="{StaticResource DropdownMenuStyle}">
                        <ComboBox.ItemTemplate>
                            <DataTemplate>
                                <Image
                                    x:Name="item"
                                    Width="48"
                                    Height="48"
                                    AllowDrop="True"
                                    Drop="item_Drop"
                                    HorizontalAlignment="Center"
                                    Source="{Binding ImgIcon}"
                                    Stretch="Uniform" />
                            </DataTemplate>
                        </ComboBox.ItemTemplate>
                    </ComboBox>

<Style x:Key="DropdownMenuStyle" TargetType="ComboBox">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ComboBox">
                            <Grid x:Name="OuterGrid">

                                <WpfControls:IconToggleButton
                                    x:Name="Expand"  
                                    IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>
                                
                                <Popup
                                    Name="Popup"
                                    AllowsTransparency="True"                                    
                                    Focusable="False"
                                    IsOpen="{TemplateBinding IsDropDownOpen}"      
                                    Placement="Bottom"
                                    PlacementTarget="{Binding ElementName=OuterGrid}">
                                    <ContentControl                                        
                                        Content="{Binding ViewModel}"    
                                        ContentTemplate="{StaticResource LayoutViewModel}"/>
                                </Popup>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

Mein Problem an der Stelle, welches ich mir absolut nicht erklären kann:

1) DropDownSelection_DragOver -> dieses Event wird ausgelöst, wenn ich ein Objekt über den IconToggleButton ziehe.

2) Im Handler des Events setze ich IsDropDownOpen der Combobox auf true, d.h. das Popup mit den Images öffnet sich. So weit so gut.

3) Jetzt würde ich gerne über item_Drop mitbekommen, wenn das gezogene Objekt über einem der Items (Images) gedroppt wird. Das funktioniert aber nicht. Beim Drop über einem Bild wird kein Event ausgelöst.

Hat jemand eine Erklärung dafür?

Danke
private Nachricht | Beiträge des Benutzers
witte
myCSharp.de - Member



Dabei seit:
Beiträge: 966

beantworten | zitieren | melden

Was ist mit AllowDrop="True"?
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

beantworten | zitieren | melden

Ist doch drin?
private Nachricht | Beiträge des Benutzers
witte
myCSharp.de - Member



Dabei seit:
Beiträge: 966

beantworten | zitieren | melden

Das Popup ist aus Sicht des Betriebssystems ein extra Fenster und gehört nicht in den VisualTree. Du sollst mal prüfen ob das Popup ebenfalls ein AllowDrop braucht.
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

Themenstarter:

beantworten | zitieren | melden

Hallo witte,

danke erstmal für die Antwort. Ich habs mal ausprobiert, AllowDrop="True" im popup ändert leider nichts. Auch nicht im ContentControl :(
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Mallett am .
private Nachricht | Beiträge des Benutzers