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

时间:2014-03-26 19:45:33

标签: c# wpf

只是一个简单的问题。 我正在研究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);

我该如何实现? 非常感谢提前。

2 个答案:

答案 0 :(得分:1)

在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所说,DataBinding是更好的解决方案

答案 1 :(得分:1)

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

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

listView1.Items.Add(new_i);

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