我的目标:我想添加添加到我的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 Interop引用的方法以及我创建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;
所以既然你已经看过我的编码以及到目前为止我做了什么,你认为最好的方法是什么?
答案 0 :(得分:0)
如果我理解你是对的,你只是想将你的DataGrid转换为html,这可能会有所帮助:http://www.codeproject.com/Articles/23640/How-to-send-DataGridView-contents-by-email
我们的想法是迭代您的DataGrid列和行,并将它们转换为html <table>
,<th>
,<tr>
,<td>
标记(或选择您喜欢的方式实施一个表)。然后,您可以将SendRFQRequest
设置为SendRFQRequest(string content)
,并将其设置为您的html正文。