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

本文关键字:创建 控件 动态 事件 添加 | 更新日期: 2023-09-27 18:34:15

我正在创建一个用户控件。我有一个字母的字符列表,我想显示这些字母,所以我创建了这样的ListViewItem

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

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

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

这个怎么样?

    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
      }
    }