2013-01-18 54 views
0

我在我的WPF應用程序中有一個datagrid,我將一個Ienumerable集合綁定到datagrid的itemsource。無法爲AutoGeneratedColumns調用EventHandler

我需要在綁定DataGrid後爲AutoGenerated列添加一個處理程序。 但我不能。

this.dataGrid1.ItemsSource = ineumerable_collection; 
dataGrid1.AutoGeneratedColumns += new EventHandler(dataGrid1_AutoGeneratedColumns);//Not working 

我在我的XAML中將Autogeneratecolumns設置爲True。但是,當我運行我的應用程序它不是調用事件處理程序dataGrid1_AutoGeneratedColumns。 如果你能解決我的問題,請提前致謝!

回答

0

問題在於您在更改ItemsSource後附加事件處理程序,這意味着在連接處理程序之前生成列。只需切換兩條語句的順序即可。

dataGrid1.AutoGeneratedColumns += new EventHandler(dataGrid1_AutoGeneratedColumns); 
this.dataGrid1.ItemsSource = ineumerable_collection; 
0

但是當我運行我的應用程序是不調用事件處理程序

你應該第一訂閱事件:

dataGrid1.AutoGeneratedColumns += dataGrid1_AutoGeneratedColumns 

然後變化項目來源:

this.dataGrid1.ItemsSource = ineumerable_collection; 

,因爲在ItemsSource發生更改並且生成了最後一列之後引發此事件。

0

根據MSDN:

的AutoGeneratedColumns事件 嘗試提出的每個時間數據網格生成columns.For例如,AutoGeneratedColumns是 當數據網格被初始化,的AutoGenerateColumns被設置爲凸起 真,或即使ItemsSource爲null,ItemsSource也會更改。

嘗試在設置ItemsSource之前訂閱事件。