首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ItemContainerGenerator.itemChanged事件查找主机

从ItemContainerGenerator.itemChanged事件查找主机
EN

Stack Overflow用户
提问于 2011-01-03 22:53:01
回答 1查看 1.1K关注 0票数 1

我正在做C# 4.0,WPF。我有三个ListView,并且这三个控件都有相同的“ItemContainerGenerator_ItemsChanged”事件处理程序,所以我的问题是我想要从事件处理程序中找到宿主ListView

代码语言:javascript
复制
lst1.ItemContainerGenerator.ItemsChanged += new System.Windows.Controls.Primitives.ItemsChangedEventHandler(ItemContainerGenerator_ItemsChanged);

lst2.ItemContainerGenerator.ItemsChanged += new System.Windows.Controls.Primitives.ItemsChangedEventHandler(ItemContainerGenerator_ItemsChanged);

lst3.ItemContainerGenerator.ItemsChanged += new System.Windows.Controls.Primitives.ItemsChangedEventHandler(ItemContainerGenerator_ItemsChanged);


void ItemContainerGenerator_ItemsChanged(
    object sender,
    System.Windows.Controls.Primitives.ItemsChangedEventArgs e)
    {
        //TODO: Find ListView instance.
        // **REAL Problem**
        // ListViewItem's Visible property has been set based on the deletion
        // button click, so at one place i have to get the count of rows which
        // are visible and proceed with related buttons enable/disable operation.
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-03 23:05:20

最简单的解决方案是使用lambda作为事件处理程序,这样您就可以将ListView实例转发给“真正的”处理程序。

代码语言:javascript
复制
lst1.ItemContainerGenerator.ItemsChanged += 
    (o, e) => this.ListViewGeneratorItemsChanged(o, e, lst1);

lst2.ItemContainerGenerator.ItemsChanged += 
    (o, e) => this.ListViewGeneratorItemsChanged(o, e, lst2);

lst3.ItemContainerGenerator.ItemsChanged += 
    (o, e) => this.ListViewGeneratorItemsChanged(o, e, lst3);

void ListViewGeneratorItemsChanged(object sender, ItemsChangedEventArgs e, ListView listView)
{
    // We have the ListView and also the ItemContainerGenerator (in sender)
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4585435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档