我有一個WPF程序可以產生多個DataGrid。我已經添加功能使用的思想在這個網站每個網格導出到Excel: http://www.codeproject.com/Articles/120480/Export-to-Excel-Functionality-in-WPF-DataGrid從XAML按鈕發送網格名稱和類名WPF
目前我只是有自己的處理程序的每個網格,看起來像這樣下一個按鈕:
private void m_btnExportTimePartitionToExcel_Click(object sender, RoutedEventArgs e)
{
try
{
ExportToExcel<SystemTimeRecordData, List<SystemTimeRecordData>> s = new ExportToExcel<SystemTimeRecordData, List<SystemTimeRecordData>>();
ICollectionView view = CollectionViewSource.GetDefaultView(m_gridPartitionSystemTimeRecords.ItemsSource);
s.dataToPrint = (List<SystemTimeRecordData>)view.SourceCollection;
s.GenerateReport();
}
catch (Exception ex)
{
MessageBox.Show("Problem with exporting Excel. Error: " + ex.Message);
}
}
我爲每個網格都有一個類似的按鈕處理程序。這一切都有效,但它「聞起來」。看起來應該有一種方法可以讓每個按鈕都調用一個處理程序。也就是說,如果我可以傳遞與該按鈕相關的網格和相關的類。我可以從XAML那裏做到嗎?我搜索並查看了傳遞參數的例子,但不是網格本身,當然也不是這個類,我猜它必須作爲類型傳遞? 這將是很好的東西,如更換上面的代碼...
private void m_btnExportTimePartitionToExcel_Click(object sender, RoutedEventArgs e)
{
try
{
// some how get Type type, and grid from sender and/or e
ExportToExcel<type, List<type>> s = new ExportToExcel<type, List<type>>();
ICollectionView view = CollectionViewSource.GetDefaultView(m_grid.ItemsSource);
s.dataToPrint = (List<type>)view.SourceCollection;
s.GenerateReport();
}
catch (Exception ex)
{
MessageBox.Show("Problem with exporting Excel. Error: " + ex.Message);
}
}
然後我可以有一個按鈕處理!有任何想法嗎? 謝謝, 戴夫
嘗試字典映射按鈕名稱到DataGrid。只需將發件人投到按鈕並訪問該名稱即可。 – Paparazzi