2009-03-06 5 views
0

Hoffentlich kann jemand helfen, weil ich nicht in der Lage war, dies herauszufinden. Hier ist mein XAML-Code für das Popup/Kombinationsfeld, bitte nicht anderen Code davor und danach für den Rest des Layouts.WPF Combo-Box + MouseLeftButtonDown

<Popup x:Name="popupMethods" Height="400" Width="150" 
     StaysOpen="False" Placement="Bottom" IsOpen="false" 
     HorizontalAlignment="Left"> 
       <ComboBox x:Name="combo" MouseLeftButtonDown="combo_MouseDown"> 
        <TextBlock>Hello</TextBlock> 
        <TextBlock>World</TextBlock> 
        <TextBlock>This</TextBlock> 
        <TextBlock>is</TextBlock> 
        <TextBlock>Autocomplete</TextBlock> 
        <TextBlock>Textbox</TextBlock> 
       </ComboBox> 
    </Popup> 

Haben Sie eingerichtet, um auf dem Bildschirm eingeblendet werden, wenn der Benutzer beginnt zu tippen, was funktioniert. Das Problem ist, dass ich möchte, dass der Benutzer in der Lage ist, auf eines der Wörter im Kombinationsfeld zu klicken und das in das Textfeld eingefügt wird. Diese Teile funktionieren nicht, da MouseLeftButtonDown niemals ausgelöst wird. Ich habe ein paar verschiedene Methoden ausprobiert darunter auch die von dieser Seite http://www.designerwpf.com/2008/12/03/getting-a-mouseleftbuttondown-or-mouseleftbuttonup- Event-from-your-Textbox/

sowie den ich woanders sah, dass war combo.MouseLeftButtonDown + = Delegat {};

Danke für jede Hilfe.

Antwort

0

Wahrscheinlich möchten Sie sich das Ereignis SelectionChanged ansehen. Es wird ausgelöst, wenn ein Element in der Drop-Down-Liste der ComboBox ausgewählt wird.

Ich denke, dass die ComboBox intern das Ereignis MouseLeftButtonDown behandelt, und das verursacht, dass es nicht an Ihren Code weitergegeben wird.

2

Statt MouseLeftButtonDown Event-Handler, verwenden Sie PreviewMouseLeftButtonDown können Sie das gleiche erreichen.