首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

WPF中Button参数传递有关问题

2013-01-05 
WPF中Button参数传递问题在代码中用for循环new出了若干个button,这些button共用一个事件Img_Click,但现在

WPF中Button参数传递问题
在代码中用for循环new出了若干个button,这些button共用一个事件Img_Click,
但现在我用Img_Click能够实现多个事件的switch,请问各位大侠请问这个参数怎么传递?
代码如下:

private void Img_Click(object sender, RoutedEventArgs e) {
            Button btn = (Button)sender;
            
            DetailsImage(CrossRoadState.南丁字路口.ToString());
        }

        private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) {
            DataGridIntro.CrossingArray _CrossingArray = new DataGridIntro.CrossingArray();
            int index = Convert.ToInt32(cmb.SelectedValue)-1;

            if (index >= _CrossingArray.Count || index == -2) return;
            CrossRoadPixture.Children.Clear();
            for (int i = 0; i < Ceiling(_CrossingArray[index].Count); i++) {
                StackPanel _StackPanel = new StackPanel();
                _StackPanel.Orientation = Orientation.Horizontal;
                _StackPanel.Margin = new Thickness(10, 10, 0, 10);
                for (int j = 0; j < 2; j++) {
                    if (i * 2 + j >= _CrossingArray[index].Count) break;
                    StackPanel _InStackPanel = new StackPanel();
                    _InStackPanel.Orientation = Orientation.Vertical;
                    _InStackPanel.Margin = new Thickness(10, 10, 0, 10);
                    Button _Button = new Button();
                    _Button.Click += new RoutedEventHandler(Img_Click);

                    StackPanel _StackOnButton = new StackPanel();
                    BitmapImage imageBitmap = new BitmapImage(new Uri(_CrossingArray[index][i*2+j].ImagePath, UriKind.Absolute));

                    Image _Image = new Image();


                    _Image.Margin = new Thickness(10, 10, 10, 10);
                    _Image.Width = 150;
                    _Image.Height = 150;
                    _Image.Source = imageBitmap;
                    _StackOnButton.Children.Add(_Image);

                    _Button.Content = _StackOnButton;
                    _InStackPanel.Children.Add(_Button);
                    _StackPanel.Children.Add(_InStackPanel);
                }
                CrossRoadPixture.Children.Add(_StackPanel);
            }            
        }


在线等。。。
[解决办法]
Button?_Button?=?new?Button();
_Button.Tag=你的参数;
_Button.Click?+=?new?RoutedEventHandler(Img_Click);

void Img_Click(object sender, RoutedEventArgs e) {
            Button btn = (Button)sender;
             
            DetailsImage(btn.Tag.ToString());
        }
 
[解决办法]
楼上真解,Tag是一个object类型的属性,专门用来存储用户自定义参数和对象的。

热点排行