我知道有很多关于“调用线程......”的问题,但我尝试的方法没有解决我的问题,我知道我必须包含一个线程调用但我不知道在哪里
所以,我创建了一个mailItem,并添加了send和close事件处理程序,如果邮件项已关闭,我什么都不做,如果发送邮件项,我必须打开一个窗口给用户注册一种历史记录
当我尝试创建注册历史记录的窗口时发生错误。
第1步:
((Microsoft.Office.Interop.Outlook.ItemEvents_10_Event)mailItem).Send += new Microsoft.Office.Interop.Outlook.ItemEvents_10_SendEventHandler(EmailEnviado);
((Microsoft.Office.Interop.Outlook.ItemEvents_10_Event)mailItem).Close += new Microsoft.Office.Interop.Outlook.ItemEvents_10_CloseEventHandler(EmailCancelado);
第2步
mailItem.Display();
第3步
private void EmailEnviado(ref bool
{
List<int> listaPendenciaId = new List<int>();
foreach (Pendencia pendencia in this.listaPendencia)
{
if (pendencia.IsSelecionado)
{
listaPendenciaId.Add(pendencia.
System.Windows.Window historicoEmailCadastro = new System.Windows.Window
{
Title = "Cadastro de Histórico de Email",
Content = new HistoricoEmailCadastro(listaPendenciaId),
Width = 249,
Height = 213,
ResizeMode = ResizeMode.NoResize
};
historicoEmailCadastro.ShowDialog();
}
提前致谢。
答案 0 :(得分:2)
您应该只从UI线程调用所有UI内容。
Application.Current.Dispatcher.Invoke(() =>
{
///....
System.Windows.Window historicoEmailCadastro = new System.Windows.Window
{
Title = "Cadastro de Histórico de Email",
Content = new HistoricoEmailCadastro(listaPendenciaId),
Width = 249,
Height = 213,
ResizeMode = ResizeMode.NoResize
};
historicoEmailCadastro.ShowDialog();
});
更多信息here