加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:48:16 所属栏目:百科 来源:网络整理
导读:我有一个MenuItem,ItemsSource是数据绑定到一个简单的字符串列表,它正确显示,但我很难看到我如何处理他们的点击事件! 这是一个简单的应用程序,演示它: Window x:Class="WPFDataBoundMenu.Window1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre
我有一个MenuItem,ItemsSource是数据绑定到一个简单的字符串列表,它正确显示,但我很难看到我如何处理他们的点击事件!

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

<Window x:Class="WPFDataBoundMenu.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
    <Menu>
        <MenuItem Header="File" Click="MenuItem_Click" />
        <MenuItem Header="My Items" ItemsSource="{Binding Path=MyMenuItems}" />
    </Menu>
</Grid>
using System.Collections.Generic;
using System.Windows;

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

        public Window1()
        {
            InitializeComponent();
            MyMenuItems = new List<string> { "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?!");
        }
    }
}

非常感谢!

克里斯.

解决方法

<MenuItem Header="My Items" ItemsSource="{Binding Path=MyMenuItems}" Click="DataBoundMenuItem_Click" />

代码背后..

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

事件会冒泡到普通的处理程序.然后,您可以使用头文本或更好的DataContext属性进行切换并根据需要进行操作

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读