手动事件处理程序的问题WPF C#

时间:2014-05-23 14:14:03

标签: c# wpf

我以编程方式创建菜单项并向其添加事件处理程序,由于某种原因,我似乎无法让每个菜单项的事件都注册其自己的唯一信息。例如:

            for (int i = 0; i < this.Slideshow.Speeds.GetLength(0); i++) 
            {

                MenuItem m = new MenuItem() { Header = this.Slideshow.Speeds[i, 0] };

                //Set initial checked MenuItem
                if (i == 3)
                {
                    m.IsChecked = true;
                }


                m.Click += (s, e) => {

                    foreach (MenuItem m_ in this.slideshowSpeedMenuItem.Items)
                    {
                        m_.IsChecked = false;
                    }

                    m.IsChecked = true;

                    this.Slideshow.CurrentSpeed = (int)this.Slideshow.Speeds[i, 1];

                    //i is always the same. i SHOULD be getting a different entry in the array
                    MessageBox.Show(i.ToString());

                };

                this.slideshowSpeedMenuItem.Items.Add(m);

            }

为什么每个菜单项的点击事件我总是一样的?我们的想法是让每个菜单项以不同的给定速度执行某些操作,如i。

所示

0 个答案:

没有答案