VSTO Outlook 切换状态
VSTO Outlook Toggle state
我正在为新邮件开发 VSTO Outlook 插件。用户可以在想要保存邮件时切换图像。
当前,当单击图像时,我将全局布尔值设置为 true。
private bool _state;
private void toggleBtn_Click(object sender, RibbonControlEventArgs e)
{
if (_state) {
_state = false;
} else {
_state = true;
}
}
直到用户在发送第一封邮件之前打开另一封新邮件 window 之前,一切正常。
如何仅存储每个新邮件的状态 window?
非常感谢。
解决方案
有两种方法可以解决这个问题。
上的优秀博客
二:使用wrapper将状态存储在类
阅读更多关于 https://msdn.microsoft.com/en-us/library/office/ff973716(v=office.14).aspx
不确定是否可以获取到当前正在编辑的邮件的EntryId,如果可以,可以尝试将所有状态缓存到字典中,如下所示
private Dictionary<string, bool> _states = new Dictionary<string, bool>();
private void toggleBtn_Click(object sender, RibbonControlEventArgs e)
{
MailItem ml;
// get current MailItem
// something like: MailItem ml = popupWindow.GetMail
// default false
if (!(_states.Keys.Contains(ml.EntryId))){
_states[ml.EntryId] = false;
}
// toggle the state
_states[ml.EntryId] = !_states[ml.EntryId];
}
但是,您可能希望处理弹出窗口 window 关闭事件,以便在用户关闭弹出窗口(例如,发送电子邮件)时从字典中删除条目
解决方案
有两种方法可以解决这个问题。
上的优秀博客
二:使用包装器将状态存储在类中阅读更多https://msdn.microsoft.com/en-us/library/office/ff973716(v=office.14).aspx
我正在为新邮件开发 VSTO Outlook 插件。用户可以在想要保存邮件时切换图像。
当前,当单击图像时,我将全局布尔值设置为 true。
private bool _state;
private void toggleBtn_Click(object sender, RibbonControlEventArgs e)
{
if (_state) {
_state = false;
} else {
_state = true;
}
}
直到用户在发送第一封邮件之前打开另一封新邮件 window 之前,一切正常。
如何仅存储每个新邮件的状态 window?
非常感谢。
解决方案
有两种方法可以解决这个问题。
上的优秀博客二:使用wrapper将状态存储在类 阅读更多关于 https://msdn.microsoft.com/en-us/library/office/ff973716(v=office.14).aspx
不确定是否可以获取到当前正在编辑的邮件的EntryId,如果可以,可以尝试将所有状态缓存到字典中,如下所示
private Dictionary<string, bool> _states = new Dictionary<string, bool>();
private void toggleBtn_Click(object sender, RibbonControlEventArgs e)
{
MailItem ml;
// get current MailItem
// something like: MailItem ml = popupWindow.GetMail
// default false
if (!(_states.Keys.Contains(ml.EntryId))){
_states[ml.EntryId] = false;
}
// toggle the state
_states[ml.EntryId] = !_states[ml.EntryId];
}
但是,您可能希望处理弹出窗口 window 关闭事件,以便在用户关闭弹出窗口(例如,发送电子邮件)时从字典中删除条目
解决方案
有两种方法可以解决这个问题。
上的优秀博客二:使用包装器将状态存储在类中阅读更多https://msdn.microsoft.com/en-us/library/office/ff973716(v=office.14).aspx