简体   繁体   中英

Bind WPF combobox submenu item to combobox selecteditem

Inside this combobox I have a menu that contains multiple menus.

This is how it looks:

在此处输入图片说明

This is the XAML:

<ComboBox> <Menu> <MenuItem Header="Name"> <MenuItem Header="Last" /> <MenuItem Header="First" /> </MenuItem> </Menu> <Menu> <MenuItem Header="Age"> <MenuItem Header="20" /> <MenuItem Header="24" /> </MenuItem> </Menu> </ComboBox>

When the user selects "Last"/"First"/"20"/"24" I want the combobox to set its selected item to one of this 4 items.

Is it possible? If yes, how can I do it?

Yes you can do that. But I am not sure if this is the best way cos I dont know your requirement in full.

XAML:

 <ComboBox x:Name="cmb1" IsEditable="True" >
            <Menu>
                <MenuItem Header="Name" >
                    <MenuItem Click="MenuItem_Click" CommandParameter ="Last" Header="Last"/>
                    <MenuItem Click="MenuItem_Click" CommandParameter="First"  Header="First" />
                </MenuItem>
            </Menu>
            <Menu>
                <MenuItem Header="Age">
                    <MenuItem Header="20" />
                    <MenuItem Header="24" />
                </MenuItem>
            </Menu>
        </ComboBox>

vb Code:

 Private Sub MenuItem_Click(sender As Object, e As RoutedEventArgs)
    Me.cmb1.Text = CType(sender, MenuItem).CommandParameter.ToString()
 End Sub

c# code :

private void MenuItem_Click(object sender, RoutedEventArgs e)
{
    MenuItem menuItem = sender as MenuItem;
    this.cmb1.Text = menuItem.CommandParameter.ToString();
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM