IEditableCollectionViewAddNewItem.AddNewItem(Object) Método

Definición

Agrega el objeto especificado a la colección.

public:
 System::Object ^ AddNewItem(System::Object ^ newItem);
public object AddNewItem(object newItem);
abstract member AddNewItem : obj -> obj
Public Function AddNewItem (newItem As Object) As Object

Parámetros

newItem
Object

Objeto que se va a agregar a la colección.

Devoluciones

Objeto que se agrega a la colección.

Ejemplos

En el ejemplo siguiente se llama al AddNewItem método para agregar un objeto a una colección. Para obtener el ejemplo completo, consulte la IEditableCollectionViewAddNewItem clase .

using System;
using System.ComponentModel;
using System.Windows;

namespace IEditableCollectionViewAddItemExample;

public partial class Window1 : Window
{
    public Window1() => InitializeComponent();

    void Button_Click(object sender, RoutedEventArgs e)
    {
        IEditableCollectionViewAddNewItem viewToAddDisparateItems =
            catalogList.Items;

        if (!viewToAddDisparateItems.CanAddNewItem)
        {
            _ = MessageBox.Show("You cannot add items to the list.");
            return;
        }

        // Create a window that prompts the user to enter a new
        // item to sell.
        AddItemWindow win = new();

        // Create an item, depending on which RadioButton is selected.
        // Radio buttons correspond to book, cd, dvd, or other.
        LibraryItem newItem = (bool)book.IsChecked
            ? new Book("Enter the book title", "Enter an Author", "Enter a Genre",
                "Enter a call number", DateTime.Now + new TimeSpan(21, 0, 0, 0))
            : (bool)cd.IsChecked
                ? new MusicCD("Enter the Album", "Enter the artist", 0, "CD.******",
                            DateTime.Now + new TimeSpan(14, 0, 0, 0))
                : (bool)dvd.IsChecked
                            ? new MovieDVD("Enter the movie title", "Enter the director",
                                        "Enter the genre", new TimeSpan(), "DVD.******",
                                        DateTime.Now + new TimeSpan(7, 0, 0, 0))
                            : new LibraryItem("Enter the title", "Enter the call number",
                                            DateTime.Now + new TimeSpan(14, 0, 0, 0));

        // Add the new item to the collection by calling
        // IEditableCollectionViewAddNewItem.AddNewItem.
        // Set the DataContext of the AddItemWindow to the
        // returned item.
        win.DataContext = viewToAddDisparateItems.AddNewItem(newItem);

        // If the user submits the new item, commit the new
        // object to the collection.  If the user cancels 
        // adding the new item, discard the new item.
        if ((bool)win.ShowDialog())
        {
            viewToAddDisparateItems.CommitNew();
        }
        else
        {
            viewToAddDisparateItems.CancelNew();
        }
    }
}
Imports System.ComponentModel
Imports System.Windows

Partial Class Window1
    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub Button_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)

        Dim viewToAddDisparateItems As IEditableCollectionViewAddNewItem =
            TryCast(catalogList.Items, IEditableCollectionViewAddNewItem)

        If Not viewToAddDisparateItems.CanAddNewItem Then
            MessageBox.Show("You cannot add items to the list.")
            Exit Sub
        End If

        ' Create a window that prompts the user to enter a new 
        ' item to sell. 
        Dim win As New AddItemWindow()

        ' Create an item, depending on which RadioButton is selected. 
        ' Radio buttons correspond to book, cd, dvd, or other. 
        Dim newItem As LibraryItem

        If CBool(Book.IsChecked) Then
            newItem = New Book("Enter the book title", "Enter an Author",
                "Enter a Genre", "Enter a call number",
                DateTime.Now + New TimeSpan(21, 0, 0, 0))
        ElseIf CBool(cd.IsChecked) Then
            newItem = New MusicCD("Enter the Album", "Enter the artist",
                0, "CD.******", DateTime.Now + New TimeSpan(14, 0, 0, 0))

        ElseIf CBool(dvd.IsChecked) Then
            newItem = New MovieDVD("Enter the movie title",
                "Enter the director", "Enter the genre", New TimeSpan(),
                "DVD.******", DateTime.Now + New TimeSpan(7, 0, 0, 0))
        Else
            newItem = New LibraryItem("Enter the title",
                "Enter the call number",
                DateTime.Now + New TimeSpan(14, 0, 0, 0))
        End If

        ' Add the new item to the collection by calling 
        ' IEditableCollectionViewAddNewItem.AddNewItem. 
        ' Set the DataContext of the AddItemWindow to the 
        ' returned item. 
        win.DataContext = viewToAddDisparateItems.AddNewItem(newItem)

        ' If the user submits the new item, commit the new 
        ' object to the collection. If the user cancels 
        ' adding the new item, discard the new item. 
        If CBool(win.ShowDialog()) Then
            viewToAddDisparateItems.CommitNew()
        Else
            viewToAddDisparateItems.CancelNew()
        End If
    End Sub
End Class

Comentarios

Al llamar al AddNewItem método , comienza una transacción de adición. Debe llamar a los CommitNew métodos o CancelNew para finalizar la transacción add.

Un nuevo elemento siempre aparece en la vista de colección. Cualquier filtrado, ordenación o agrupación que se aplica a la vista se aplica al nuevo elemento cuando CommitNew se llama a .

Se aplica a