将WPF组合框子菜单项绑定到组合框选择项

时间:2014-04-03 21:44:22

标签: c# wpf xaml combobox

在这个组合框中,我有一个包含多个菜单的菜单。

它的外观如下:

enter image description here

这是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>

当用户选择&#34; Last&#34; /&#34; First&#34; /&#34; 20&#34; /&#34; 24&#34;我希望组合框将其选定的项目设置为这4项中的一项。

有可能吗?如果是,我该怎么做?

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。但我不确定这是否是最好的方式因为我完全不了解你的要求。

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代码:

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

c#c​​ode:

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