.net listbox添加onrowdatabound事件 - 如何?

时间:2011-02-17 21:05:06

标签: c# visual-studio-2008 .net-3.5

我想在我的.net页面上扩展列表框并添加一个onrowdatabound事件,我想知道我是否可以这样做?感谢。

1 个答案:

答案 0 :(得分:1)

我不确定为什么在每行上执行此操作会很有价值,而不是仅仅捕获DataBinding并在那里执行任何操作。但是如果你真的想这样做,那么只需遍历数据源并引发一个事件:

public class ItemDataBoundArgs: EventArgs
{
   public object Item;
}
public class MyListBox: ListBox
{
    public event EventHandler ItemDataBound;
    protected override void OnDataBinding(EventArgs e)
    {
       base.OnDataBinding(e);
       if (ItemDataBound != null)
       {
           foreach (var item in (IEnumerable)DataSource)
           {
                var e= new ItemDataBoundArgs();
                e.Item=item;
                ItemDataBound(this,e);
            }
        }
    }
}

当然这需要DataSource是IEnumerable,它不一定是,所以你也可以检查它。

这听起来像是面试问题......