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();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
IEditableCollectionViewAddNewItem viewToAddDisparateItems =
catalogList.Items as IEditableCollectionViewAddNewItem;
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 AddItemWindow();
// Create an item, depending on which RadioButton is selected.
// Radio buttons correspond to book, cd, dvd, or other.
LibraryItem newItem;
if ((bool)book.IsChecked)
{
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));
}
else if ((bool)cd.IsChecked)
{
newItem = new MusicCD("Enter the Album", "Enter the artist", 0, "CD.******",
DateTime.Now + new TimeSpan(14, 0, 0, 0));
}
else if ((bool)dvd.IsChecked)
{
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));
}
// 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 ,任何套用至檢視的篩選、排序或群組,都套用至新專案。