2010-03-29 13 views
0

Sorrry球員,我被困在這裏。在ColumnHeaderClick中獲取Grid數據

我有幾個網格,我也有與這些網格關聯的CollectionViewSource對象。

現在,我想在ColumnHeaderClick方法中應用CollectionViewSource.SortDescriptions,現在我必須爲每個網格定義幾乎相同的方法。

但我真正需要的唯一的東西是獲得在哪個網格發生。

如何得到這一點,我不知道。請幫幫我。

VisualTreeHelper.GetParent無法正常工作。

回答

0

哦..它的橫空出世,它可能直接改變SortDesriptions在

(((System.Windows.Controls.ListBox)(發件人))。項目)

0

我認爲,最好的辦法是派生自己的網格控件,添加所需的通用功能。作爲認定被點擊的列,這裏是一些源代碼....

protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e) 
{ 
    base.OnPreviewMouseLeftButtonUp(e); 
    if (e.OriginalSource is GridViewColumnHeader) 
    { 
     GridViewColumn col = ((GridViewColumnHeader)e.OriginalSource).Column as GridViewColumn; 
    DoStuffWithYourColumn(col); 
    } 
} 

哦,還有一件事,你真的應該使用自定義分類器,而不是那種描述 - 排序的描述是很慢。請參閱this article瞭解有關該主題的更多信息。