【问题标题】:Bind WPF combobox submenu item to combobox selecteditem将 WPF 组合框子菜单项绑定到组合框选定项
【发布时间】:2014-04-03 21:44:22
【问题描述】:

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

看起来是这样的:

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

当用户选择“Last”/“First”/“20”/“24”时,我希望组合框将其选定项目设置为这 4 个项目之一。

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

【问题讨论】:

    标签: c# wpf xaml combobox


    【解决方案1】:

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

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

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

    【讨论】:

    • 在 C# 中是this。 @voddy
    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多