Interface IRealmCollection<T>
Iterable, sortable collection of one kind of RealmObject resulting from All<T>() or from a LINQ query expression.
Namespace: Realms
Assembly: Realm.dll
Syntax
public interface IRealmCollection<out T> : IReadOnlyList<T>, INotifyCollectionChanged, INotifyPropertyChanged
Type Parameters
Name | Description |
---|---|
T | Type of the RealmObject which is being returned. |
Properties
| Improve this Doc View SourceIsValid
Gets a value indicating whether this collection is still valid to use, i.e. the Realm instance hasn't been closed and, if it represents a to-many relationship, it's parent object hasn't been deleted.
Declaration
bool IsValid { get; }
Property Value
Type | Description |
---|---|
Boolean |
|
Methods
| Improve this Doc View SourceSubscribeForNotifications(NotificationCallbackDelegate<T>)
Register a callback to be invoked each time this IRealmCollection<T> changes.
Declaration
IDisposable SubscribeForNotifications(NotificationCallbackDelegate<T> callback)
Parameters
Type | Name | Description |
---|---|---|
NotificationCallbackDelegate<T> | callback | The callback to be invoked with the updated IRealmCollection<T>. |
Returns
Type | Description |
---|---|
IDisposable | A subscription token. It must be kept alive for as long as you want to receive change notifications.
To stop receiving notifications, call |
Remarks
The callback will be asynchronously invoked with the initial IRealmCollection<T>, and then
called again after each write transaction which changes either any of the objects in the collection, or
which objects are in the collection. The changes
parameter will
be null
the first time the callback is invoked with the initial results. For each call after that,
it will contain information about which rows in the results were added, removed or modified.
If a write transaction did not modify any objects in this IRealmCollection<T>, the callback is not invoked at all.
If an error occurs the callback will be invoked with null
for the sender
parameter and a non-null
error
.
Currently the only errors that can occur are when opening the Realm on the background worker thread.
At the time when the block is called, the IRealmCollection<T> object will be fully evaluated and up-to-date, and as long as you do not perform a write transaction on the same thread or explicitly call Refresh(), accessing it will never perform blocking work.
Notifications are delivered via the standard event loop, and so can't be delivered while the event loop is blocked by other activity. When notifications can't be delivered instantly, multiple notifications may be coalesced into a single notification. This can include the notification with the initial collection.