ユーザーが削除できないように、すべてのコンテンツコントロールをプログラムでロックしたいと思います。
私は次のコードを使用していますが、私の問題は、いくつかのケースでをnull
呼び出すときに取得することelem.SdtProperties.ChildElements.First<WP.Lock>()
です。
誰かが私が下記のコードを完成させるのを手伝ってもらえますか?
static void MakeContentControlsNonDeletable()
{
using (P.WordprocessingDocument wordDoc =
P.WordprocessingDocument.Open(@"c:\XYZ.docx", true))
{
IEnumerable<WP.SdtElement> elements =
wordDoc.MainDocumentPart.Document.Descendants<WP.SdtElement>();
foreach (WP.SdtElement elem in elements)
{
if (elem.SdtProperties != null)
{
WP.Lock l = elem.SdtProperties.ChildElements.First<WP.Lock>();
if (l == null)
{
//Please help here
//Please help here
//Please help here
//Please help here
}
if (l.Val != WP.LockingValues.SdtContentLocked && l.Val != WP.LockingValues.SdtLocked)
{
Console.WriteLine("Unlock content element...");
l.Val = WP.LockingValues.SdtLocked;
}
}
}
}