[WPF] Editable ComboBox with context menu

08/31/2012 13:19 Obilee#1
I implemented a editable combobox with wpf:

Code:
 <ComboBox IsEditable="True">
                <ComboBoxItem Content="Item1"></ComboBoxItem>
                <ComboBoxItem Content="Item2"></ComboBoxItem>
</ComboBox>
and it works fine, but now i want to add my own context menu:

Code:
<ComboBox IsEditable="True" ContextMenu="{StaticResource contextMenu}">
and here is my problem: the comobox shows the editable contextmenu with copy, paste, cut and not my own declared one.

do somebody know how to avoid that my context menu is overwritten?
08/31/2012 14:29 Lu​#2
PHP Code:
<ComboBox IsEditable="True" ContextMenuService.ShowOnDisabled="True">
    <
ComboBoxItem Content="Item1"></ComboBoxItem>
    <
ComboBoxItem Content="Item2"></ComboBoxItem>
</
ComboBox
08/31/2012 14:51 Obilee#3
Code:
<ComboBox IsEditable="True" ContextMenuService.ShowOnDisabled="True">
            <ComboBox.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="test"></MenuItem>
                </ContextMenu>
            </ComboBox.ContextMenu>
            <ComboBoxItem Content="Item1"></ComboBoxItem>
            <ComboBoxItem Content="Item2"></ComboBoxItem>
        </ComboBox>
still the "cut/paste/copy" context menu visible and not my "test" context meu.
you can only see it if you right click on a select able combobox item, but i want this menu in the editable field of the context menu
08/31/2012 15:00 Lu​#4
Also so geht es bei mir
[Only registered and activated users can see links. Click Here To Register...]
08/31/2012 15:09 Obilee#5
du hast aber in deinem beispiel auch kein "IsEditable="True"" drinne ;) wenn ich eine normale combobox mache geht es auch ohne probleme
08/31/2012 15:19 Lu​#6
Ah jetzt weiß ich was du meinst.


PHP Code:
        <ComboBox HorizontalAlignment="Left" Height="28" Margin="10,10,0,0" Width="296" IsEditable="True" ContextMenuService.ShowOnDisabled="True" Name="combobox" Loaded="combobox_Loaded">
            <
ComboBox.ContextMenu>
                <
ContextMenu>
                    <
MenuItem Header="test"></MenuItem>
                </
ContextMenu>
            </
ComboBox.ContextMenu>
            <
ComboBoxItem Content="Item1"></ComboBoxItem>
            <
ComboBoxItem Content="Item2"></ComboBoxItem>
        </
ComboBox
PHP Code:
        private void combobox_Loaded(object senderRoutedEventArgs e)
        {
            (
VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(combobox0), 2) as TextBox).ContextMenu combobox.ContextMenu;
        } 
08/31/2012 15:24 Obilee#7
Hab schon befürchtet dass ich das Textfeld überladen muss. Thx soweit.