2011-02-17 41 views

回答

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); 
      } 
     } 
    } 
} 

當然這需要數據源是IEnumerable的,它並不必須是,這樣你就可以檢查爲此。

這聽起來像一個面試問題...

+0

沒有它不是一個面試的問題。我試圖爲列表中的每一行添加一個'標題',就像一個工具提示,我知道如何使用rowbound事件來處理gridview,但不知道如何對列表框執行相同的操作。 – flavour404 2011-02-17 21:53:17