只是一个简单的问题。 我正在研究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);
我该如何实现? 非常感谢提前。
答案 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中的数据绑定。