我的VSTO加载项会创建一个启用了单元格内编辑的视图。当此视图应用于共享文件夹时,单元格内编辑不起作用。 加载项生成的视图适用于属于我的Exchange帐户的文件夹。当我从Outlook UI创建类似的视图时,单元格编辑在共享文件夹中正常工作。
要创建视图,我使用以下代码:
Outlook.View newView = Application.ActiveExplorer().CurrentFolder.Views.Add("Test", Outlook.OlViewType.olTableView, Outlook.OlViewSaveOption.olViewSaveOptionAllFoldersOfType);
newView.XML =
@"<?xml version=""1.0""?>
<view type=""table"">
<viewname>SharedInboxFromScratch2</viewname>
<incelledit>1</incelledit>
<column>
<heading>Subject</heading>
<prop>urn:schemas:httpmail:subject</prop>
<type>string</type>
<editable>0</editable>
</column>
<column>
<type>string</type>
<heading>Responsible</heading>
<prop>http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/Responsible</prop>
<editable>1</editable>
</column>
</view>";
newView.Save();
当我将焦点放在具有Responsible列的单元格并按F2进入编辑模式时,我可以键入新值,但是当我单击Enter时,新值将消失,并且初始单元格值将恢复。
问题是如何为加载项生成的视图中的共享文件夹进行单元格内编辑工作?
我已尝试将视图应用于一个文件夹或所有文件夹 - 无效。 使用右键单击共享文件夹 - 属性 - 权限 - 添加。我拥有所有者权限。
答案 0 :(得分:1)
要解决此问题,我已将表示我的自定义字段的用户定义属性添加到共享文件夹:
folder.UserDefinedProperties.Add("Responsible", OlUserPropertyType.olText);
答案 1 :(得分:1)
还可以将用户定义的属性添加到文件夹中的每个项目。
foreach (var item in folder.Items)
{
if(item is Microsoft.Office.Interop.Outlook.MailItem)
(item as Microsoft.Office.Interop.Outlook.MailItem).UserProperties.Add("Responsible", OlUserPropertyType.olText);
}