public void ListItemCollection() { //ExStart //ExFor:SdtListItem //ExFor:SdtListItem.#ctor(System.String) //ExFor:SdtListItem.#ctor(System.String,System.String) //ExFor:SdtListItem.DisplayText //ExFor:SdtListItem.Value //ExFor:SdtListItemCollection //ExFor:SdtListItemCollection.Add(Aspose.Words.Markup.SdtListItem) //ExFor:SdtListItemCollection.Clear //ExFor:SdtListItemCollection.Count //ExFor:SdtListItemCollection.GetEnumerator //ExFor:SdtListItemCollection.Item(System.Int32) //ExFor:SdtListItemCollection.RemoveAt(System.Int32) //ExFor:SdtListItemCollection.SelectedValue //ExFor:StructuredDocumentTag.ListItems //ExSummary:Shows how to work with StructuredDocumentTag nodes of the DropDownList type. // Create a blank document and insert a StructuredDocumentTag that will contain a drop-down list Document doc = new Document(); StructuredDocumentTag tag = new StructuredDocumentTag(doc, SdtType.DropDownList, MarkupLevel.Block); doc.FirstSection.Body.AppendChild(tag); // A drop-down list needs elements, each of which will be a SdtListItem SdtListItemCollection listItems = tag.ListItems; listItems.Add(new SdtListItem("Value 1")); // Each SdtListItem has text that will be displayed when the drop-down list is opened, and also a value // When we initialize with one string, we are providing just the value // Accordingly, value is passed as DisplayText and will consequently be displayed on the screen Assert.AreEqual(listItems[0].DisplayText, listItems[0].Value); // Add 3 more SdtListItems with non-empty strings passed to DisplayText listItems.Add(new SdtListItem("Item 2", "Value 2")); listItems.Add(new SdtListItem("Item 3", "Value 3")); listItems.Add(new SdtListItem("Item 4", "Value 4")); // We can obtain a count of the SdtListItems and also set the drop-down list's SelectedValue attribute to // automatically have one of them pre-selected when we open the document in Microsoft Word Assert.AreEqual(4, listItems.Count); listItems.SelectedValue = listItems[3]; Assert.AreEqual("Value 4", listItems.SelectedValue.Value); // We can enumerate over the collection and print each element using (IEnumerator <SdtListItem> enumerator = listItems.GetEnumerator()) { while (enumerator.MoveNext()) { if (enumerator.Current != null) { Console.WriteLine($"List item: {enumerator.Current.DisplayText}, value: {enumerator.Current.Value}"); } } } // We can also remove elements one at a time listItems.RemoveAt(3); Assert.AreEqual(3, listItems.Count); // Make sure to update the SelectedValue's index if it ever ends up out of bounds before saving the document listItems.SelectedValue = listItems[1]; doc.Save(ArtifactsDir + "StructuredDocumentTag.ListItemCollection.docx"); // We can clear the whole collection at once too listItems.Clear(); Assert.AreEqual(0, listItems.Count); //ExEnd }
public void ListItemCollection() { //ExStart //ExFor:SdtListItem //ExFor:SdtListItem.#ctor(System.String) //ExFor:SdtListItem.#ctor(System.String,System.String) //ExFor:SdtListItem.DisplayText //ExFor:SdtListItem.Value //ExFor:SdtListItemCollection //ExFor:SdtListItemCollection.Add(Aspose.Words.Markup.SdtListItem) //ExFor:SdtListItemCollection.Clear //ExFor:SdtListItemCollection.Count //ExFor:SdtListItemCollection.GetEnumerator //ExFor:SdtListItemCollection.Item(System.Int32) //ExFor:SdtListItemCollection.RemoveAt(System.Int32) //ExFor:SdtListItemCollection.SelectedValue //ExFor:StructuredDocumentTag.ListItems //ExSummary:Shows how to work with drop down-list structured document tags. Document doc = new Document(); StructuredDocumentTag tag = new StructuredDocumentTag(doc, SdtType.DropDownList, MarkupLevel.Block); doc.FirstSection.Body.AppendChild(tag); // A drop-down list structured document tag is a form that allows the user to // select an option from a list by left-clicking and opening the form in Microsoft Word. // The "ListItems" property contains all list items, and each list item is an "SdtListItem". SdtListItemCollection listItems = tag.ListItems; listItems.Add(new SdtListItem("Value 1")); Assert.AreEqual(listItems[0].DisplayText, listItems[0].Value); // Add 3 more list items. Initialize these items using a different constructor to the first item // to display strings that are different from their values. listItems.Add(new SdtListItem("Item 2", "Value 2")); listItems.Add(new SdtListItem("Item 3", "Value 3")); listItems.Add(new SdtListItem("Item 4", "Value 4")); Assert.AreEqual(4, listItems.Count); // The drop-down list is displaying the first item. Assign a different list item to the "SelectedValue" to display it. listItems.SelectedValue = listItems[3]; Assert.AreEqual("Value 4", listItems.SelectedValue.Value); // Enumerate over the collection and print each element. using (IEnumerator <SdtListItem> enumerator = listItems.GetEnumerator()) { while (enumerator.MoveNext()) { if (enumerator.Current != null) { Console.WriteLine($"List item: {enumerator.Current.DisplayText}, value: {enumerator.Current.Value}"); } } } // Remove the last list item. listItems.RemoveAt(3); Assert.AreEqual(3, listItems.Count); // Since our drop-down control is set to display the removed item by default, give it an item to display which exists. listItems.SelectedValue = listItems[1]; doc.Save(ArtifactsDir + "StructuredDocumentTag.ListItemCollection.docx"); // Use the "Clear" method to empty the entire drop-down item collection at once. listItems.Clear(); Assert.AreEqual(0, listItems.Count); //ExEnd }