当前位置:  开发笔记 > 编程语言 > 正文

如何在WPF中的数据绑定菜单中处理单击事件

如何解决《如何在WPF中的数据绑定菜单中处理单击事件》经验,为你挑选了2个好方法。

我有一个MenuItem,其中ItemsSource被数据绑定到一个简单的字符串列表,它显示正确,但我很难看到我如何处理它们的点击事件!

这是一个演示它的简单应用程序:



    
        
        
    

using System.Collections.Generic;
using System.Windows;

namespace WPFDataBoundMenu
{
    /// 
    /// Interaction logic for Window1.xaml
    /// 
    public partial class Window1 : Window
    {
        public List MyMenuItems { get; set;}

        public Window1()
        {
            InitializeComponent();
            MyMenuItems = new List { "Item 1", "Item 2", "Item 3" };
            DataContext = this;
        }

        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("how do i handle the other clicks?!");
        }
    }
}

非常感谢!

克里斯.



1> Gishu..:

代码背后..

private void DataBoundMenuItem_Click(object sender, RoutedEventArgs e)
{
   MenuItem obMenuItem = e.OriginalSource as MenuItem;
   MessageBox.Show( String.Format("{0} just said Hi!", obMenuItem.Header));
}

事件将冒泡到公共处理程序.然后,您可以使用Header文本或更好的DataContext属性来切换并根据需要执行操作



2> Kent Boogaar..:

您可以使每个菜单项执行相同的命令,从而集中处理执行。如果您需要区分实际对象实例之外的菜单项,那么也可以绑定command参数:


    
        
    

SomeProperty假定是MyMenuItems集合中每个项目的属性。因此,您的命令执行处理程序将收到所SomeProperty单击的特定菜单项的值。

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有