我的目标:我想添加添加到我的 DataGrid 中的某些项目/行,以便在创建新电子邮件后显示在我的 Outlook HTMLBody
中。
的问题:我不知道从哪里开始以及如何实现我的目标。因此,我想从任何愿意提供它们的人那里得到一些指示和想法。
以下是一些(我认为)会对我有所帮助的基本编码。
我可以从 WCF 服务将所需的项插入到数据网格中
private async void btnSupplierAddItem_Click(object sender, RoutedEventArgs e) { using (MKCServiceClient service = new MKCServiceClient()) { var selectedId = (lbxSupplierSearchItems.SelectedItem as ViewQuoteList).Id; QuoteItemList qd = new QuoteItemList() { Id = selectedId, }; var items = await service.GetListOfQuoteItemsAsync(qd); foreach (var item in items) dgSupplier.Items.Add(new ViewQuoteItemList { CustomerRFQ = item.CustomerRFQ, Item = item.Item, Material = item.Material, Description = item.Description, AdditionalInformation = item.AdditionalInformation, Quantity = item.Quantity }); }
无需查看我的 WCF 编码,因为一切正常
我使用Microsoft Outlook 互操作参考和创建
MailItem
的方法private void SendRFQRequest() { OutlookApp outlookApp = new OutlookApp(); Outlook.MailItem mailItem = outlookApp.CreateItem(Outlook.OlItemType.olMailItem); mailItem.Recipients.Add(lblSupplierEmailAddress.Content.ToString()); mailItem.Subject = "Quote Request"; mailItem.HTMLBody = "<html><body>Test Body</body></html>"; mailItem.Importance = Outlook.OlImportance.olImportanceHigh; mailItem.Display(false); } //Where I call my SendRFQRequest method private void btnSupplierSend_Click(object sender, RoutedEventArgs e) { SendRFQRequest(); }
我的参考资料
using OutlookApp = Microsoft.Office.Interop.Outlook.Application;
using Outlook = Microsoft.Office.Interop.Outlook;
所以现在你已经看到了我的编码和我到目前为止所做的工作,你认为实现我的目标的最佳方式是什么?
如果我理解正确,并且您只想将DataGrid转换为html,也许这会有所帮助:http://www.codeproject.com/Articles/23640/How-to-send-DataGridView-contents-by-email
这个想法是遍历你的DataGrid列和行,并将它们转换为html <table>
,<th>
,<tr>
,<td>
标签(或选择你最喜欢的实现表的方式)。然后,您可以像SendRFQRequest(string content)
一样参数化SendRFQRequest
并将其设置为html正文。