将事件添加到动态创建的控件

时间:2016-02-11 12:12:24

标签: c# windows events dynamic listviewitem

我正在创建一个UserControl。我有一个字母字母的字符列表,我想显示这些字母,所以我创建ListViewItem这样:

foreach (char letter in letterList)
        {
            this.stack.Children.Add(new ListViewItem
            {
                Content = letter
            });
         }

现在我想添加事件,所以当用户点击特定字母时,会发生特定的事情 有没有办法做到这一点,除了为每个字母创建单独的ListViewItem

1 个答案:

答案 0 :(得分:0)

这个怎么样?

    ListViewItem lstvwalphabet;
    foreach (char letter in letterList)
     { 
            lstvwalphabet = new ListViewItem();
            lstvwalphabet.Content = letter;
            lstvwalphabet.PreviewMouseLeftButtonDown += ListViewItem_PreviewMouseLeftButtonDown;
            this.stack.Children.Add(lstvwalphabet);
     }

跟踪点击哪个项目的事件。

    private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
      var item = sender as ListViewItem;
      if (item != null && item.IsSelected)
      {
        //Do your stuff
      }
    }