IEditableCollectionView インターフェイス

定義

CollectionView が実装するメソッドとプロパティを定義して、コレクションに編集機能を提供します。Defines methods and properties that a CollectionView implements to provide editing capabilities to a collection.

public interface class IEditableCollectionView
public interface IEditableCollectionView
type IEditableCollectionView = interface
Public Interface IEditableCollectionView
派生

次の例では、でIEditableCollectionView定義されているメソッドを使用して、コレクションに項目を追加する方法を示します。The following example shows how to add an item to a collection by using methods that are defined by IEditableCollectionView. このアプリケーションでは、販売する項目の一覧を表示し、項目を追加、編集、または削除するためのオプションをユーザーに提供します。This application displays a list of items for sale and gives the user the option of adding, editing, or removing an item. ユーザーが項目を追加または編集すると、新しい項目を入力するようにユーザーに求めるフォームが表示されます。When the user adds or edits an item, a form prompts the user to enter a new item. ユーザーがフォームを送信すると、アイテムはコレクションにコミットされます。If the user submits the form, the item is committed to the collection. ユーザーがフォームをキャンセルした場合、その項目は破棄されます。If the user cancels the form, the item is discarded. サンプル全体については、「 IEditableCollectionView サンプルを使用したコレクションの変更」を参照してください。For the entire sample, see Changing a Collection by Using IEditableCollectionView Sample.

IEditableCollectionView editableCollectionView = 
    itemsControl.Items as IEditableCollectionView; 

if (!editableCollectionView.CanAddNew)
{
    MessageBox.Show("You cannot add items to the list.");
    return;
}

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

//Create a new item to be added to the collection.
win.DataContext = editableCollectionView.AddNew();

// 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())
{
    editableCollectionView.CommitNew();
}
else
{
    editableCollectionView.CancelNew();
}

Dim editableCollectionView As IEditableCollectionView = TryCast(itemsControl.Items, IEditableCollectionView)

If Not editableCollectionView.CanAddNew Then
    MessageBox.Show("You cannot add items to the list.")
    Return
End If

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

'Create a new item to be added to the collection.
win.DataContext = editableCollectionView.AddNew()

' 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
    editableCollectionView.CommitNew()
Else
    editableCollectionView.CancelNew()
End If

注釈

コレクションビューでインターフェイスがIEditableCollectionView実装されている場合、コレクションの型に関係なく、が公開するIEditableCollectionViewメソッドとプロパティを使用して、基になるコレクションを変更できる場合は、そのコレクションを直接変更できます。When a collection view implements the IEditableCollectionView interface, you can directly change the underlying collection, if it allows changes to be made, by using the methods and properties that IEditableCollectionView exposes, regardless of the collection's type.

型、 ItemCollectionBindingListCollectionView、およびListCollectionView型は、からCollectionView継承しWindows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)たと共に出荷される型です。The types ItemCollection, BindingListCollectionView, and ListCollectionView are the types that ship with Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) that inherit from CollectionView. また、これらの型IEditableCollectionViewはを実装するので、これらの型のいずれかを使用するコレクションを編集できます。These types also implement the IEditableCollectionView, so you can edit a collection that uses one of those types. ItemCollection特に、 ItemsControl.ItemsプロパティItemCollectionはであるため、よく使用されます。ItemCollection, in particular, is often used because the ItemsControl.Items property is an ItemCollection.

プロパティ

CanAddNew

新しい項目をコレクションに追加できるかどうかを示す値を取得します。Gets a value that indicates whether a new item can be added to the collection.

CanCancelEdit

コレクション ビューが保留中の変更を破棄して、編集されたオブジェクトの元の値を復元できるかどうかを示す値を取得します。Gets a value that indicates whether the collection view can discard pending changes and restore the original values of an edited object.

CanRemove

コレクションから項目を削除できるかどうかを示す値を取得します。Gets a value that indicates whether an item can be removed from the collection.

CurrentAddItem

現在の追加トランザクション処理中に追加される項目を取得します。Gets the item that is being added during the current add transaction.

CurrentEditItem

編集されているコレクション内の項目を取得します。Gets the item in the collection that is being edited.

IsAddingNew

追加トランザクションが実行中かどうかを示す値を取得します。Gets a value that indicates whether an add transaction is in progress.

IsEditingItem

編集トランザクションが実行中かどうかを示す値を取得します。Gets a value that indicates whether an edit transaction is in progress.

NewItemPlaceholderPosition

コレクション ビューにある新しい項目のプレースホルダーの位置を取得または設定します。Gets or sets the position of the new item placeholder in the collection view.

メソッド

AddNew()

新しい項目をコレクションに追加します。Adds a new item to the collection.

CancelEdit()

編集トランザクションを終了し、可能な場合は、項目の元の値を復元します。Ends the edit transaction and, if possible, restores the original value to the item.

CancelNew()

追加トランザクションを終了し、保留中の新しい項目を破棄します。Ends the add transaction and discards the pending new item.

CommitEdit()

編集トランザクションを終了し、保留中の変更を保存します。Ends the edit transaction and saves the pending changes.

CommitNew()

追加トランザクションを終了し、保留中の新しい項目を保存します。Ends the add transaction and saves the pending new item.

EditItem(Object)

指定した項目の編集トランザクションを開始します。Begins an edit transaction of the specified item.

Remove(Object)

指定した項目をコレクションから削除します。Removes the specified item from the collection.

RemoveAt(Int32)

コレクション内の指定した位置にある項目を削除します。Removes the item at the specified position from the collection.

適用対象