IEditableCollectionViewAddNewItem.AddNewItem(Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
컬렉션에 지정된 개체를 추가합니다.
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
매개 변수
- newItem
- Object
컬렉션에 추가할 개체입니다.
반품
컬렉션에 추가되는 개체입니다.
예제
다음 예제에서는 메서드를 AddNewItem 호출하여 컬렉션에 개체를 추가합니다. 전체 예제는 클래스를 참조하세요 IEditableCollectionViewAddNewItem .
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
설명
메서드를 AddNewItem 호출하면 추가 트랜잭션이 시작됩니다. 추가 트랜잭션을 CommitNew 종료하려면 메서드를 CancelNew 호출해야 합니다.
새 항목은 항상 컬렉션 보기에 나타납니다. 뷰에 적용되는 필터링, 정렬 또는 그룹화는 호출 시 새 항목 CommitNew 에 적용됩니다.