将函数绑定到动态创建的元素

本文关键字:创建 元素 动态 函数 绑定 | 更新日期: 2023-09-27 17:54:13

问个小问题。我正在做WPF项目(使用c#)。

所以我有一个函数,点击一个radnom listview项目显示它在文本框中的文本。

private void show_it(object sender, MouseButtonEventArgs e)
    {
        ListViewItem item = (ListViewItem)sender;
        textBox1.Text = item.Content.ToString();
    }

现在,如果我在c#中创建另一个Listview项,我找不到将相同的函数绑定到新创建的元素的方法。

        ListViewItem new_i=new ListViewItem();
        new_i.Content = "test";
        /* Tried; not working:
        new_i.SetValue(OnMouseLeftButtonUp, "show_it");
         */
        listView1.Items.Add(new_i);

我如何实现这个?

将函数绑定到动态创建的元素

WPF中的路由事件处理程序以与其他。net事件相同的方式进行编程分配。

ListViewItem new_i=new ListViewItem();
new_i.Content = "test";
new_i.Click += show_it;
listView1.Items.Add(new_i);

如果您有时间,我建议您阅读一下WPF中的数据绑定。

在XAML中注册一个处理程序:

<ListView SelectionChanged="ListView_SelectionChanged"> 

后面的代码:

private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
  ListView control = (ListView)sender;
  var item = (ListViewItem)control.SelectedItem;
  textBox1.Text = item.Content.ToString();
}

但正如HighCore所说,数据绑定是更好的解决方案