# C1.LiveLinq.LiveViews.View

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_LiveLinq_LiveViews_View" data-uid="C1.LiveLinq.LiveViews.View" class="text-break">View Class
</h1>
  <div class="markdown level0 summary"><p>Base class for the <a class="xref" href="C1.LiveLinq.LiveViews.View-1.html">View&lt;T&gt;</a> class. Contains members that don't depend on the element type <i>T</i>.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><span class="xref">View</span></div>
      <div class="level2"><a class="xref" href="C1.LiveLinq.LiveViews.View-1.html">View</a>&lt;T&gt;</div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.ilist">IList</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.icollection">ICollection</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.inotifypropertychanged">INotifyPropertyChanged</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.ilistsource">IListSource</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.itypedlist">ITypedList</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.iitemproperties">IItemProperties</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.icollectionview">ICollectionView</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.ienumerable">IEnumerable</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.specialized.inotifycollectionchanged">INotifyCollectionChanged</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.ieditablecollectionview">IEditableCollectionView</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.LiveLinq.LiveViews.html">C1.LiveLinq.LiveViews</a></h6>
  <h6><strong>Assembly</strong>: C1.LiveLinq.4.8.dll</h6>
  <h5 id="C1_LiveLinq_LiveViews_View_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class View : IList, ICollection, IDisposable, INotifyPropertyChanged, IListSource, ITypedList, IItemProperties, ICollectionView, IEnumerable, INotifyCollectionChanged, IEditableCollectionView</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public MustInherit Class View
    Implements IList, ICollection, IDisposable, INotifyPropertyChanged, IListSource, ITypedList, IItemProperties, ICollectionView, IEnumerable, INotifyCollectionChanged, IEditableCollectionView</code></pre>
  </div>
  <h5 id="C1_LiveLinq_LiveViews_View_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p>Use this class to type variables that can accept views with different element types or a view with anonymous element type.</p>
</div>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_Count" data-uid="C1.LiveLinq.LiveViews.View.Count">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.Count.html#C1_LiveLinq_LiveViews_View_Count">Count</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the total number of elements in the view.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_CurrentItem" data-uid="C1.LiveLinq.LiveViews.View.CurrentItem">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.CurrentItem.html#C1_LiveLinq_LiveViews_View_CurrentItem">CurrentItem</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the current item in the view.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_DataBindingMode" data-uid="C1.LiveLinq.LiveViews.View.DataBindingMode">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.DataBindingMode.html#C1_LiveLinq_LiveViews_View_DataBindingMode">DataBindingMode</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the data binding mode for this view.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_DeferredMaintenance" data-uid="C1.LiveLinq.LiveViews.View.DeferredMaintenance">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.DeferredMaintenance.html#C1_LiveLinq_LiveViews_View_DeferredMaintenance">DeferredMaintenance</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the effective value of MaintenanceMode.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_IsReadOnly" data-uid="C1.LiveLinq.LiveViews.View.IsReadOnly">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.IsReadOnly.html#C1_LiveLinq_LiveViews_View_IsReadOnly">IsReadOnly</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a value indicating whether this view is read-only, not updatable.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_MaintenanceMode" data-uid="C1.LiveLinq.LiveViews.View.MaintenanceMode">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.MaintenanceMode.html#C1_LiveLinq_LiveViews_View_MaintenanceMode">MaintenanceMode</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets a value controlling how the view is synchronized with changes in its base data.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_MoveToFirstOnReset" data-uid="C1.LiveLinq.LiveViews.View.MoveToFirstOnReset">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.MoveToFirstOnReset.html#C1_LiveLinq_LiveViews_View_MoveToFirstOnReset">MoveToFirstOnReset</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets a value indicating that the first item must be made current after initial loading or reset
(on any <a class="xref" href="C1.LiveLinq.SourceChangeType.html#C1_LiveLinq_SourceChangeType_Reset">Reset</a> notification) if current item was not set by other means. The default is True.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_Order" data-uid="C1.LiveLinq.LiveViews.View.Order">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.Order.html#C1_LiveLinq_LiveViews_View_Order">Order</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a value indicating whether and how this view preserves item order if it exists in its base data source.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_Rows" data-uid="C1.LiveLinq.LiveViews.View.Rows">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.Rows.html#C1_LiveLinq_LiveViews_View_Rows">Rows</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the collection of <a class="xref" href="C1.LiveLinq.LiveViews.ViewRow.html">ViewRow</a> objects used for programmatic access to view elements (items) and for data binding.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_Transaction" data-uid="C1.LiveLinq.LiveViews.View.Transaction">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.Transaction.html#C1_LiveLinq_LiveViews_View_Transaction">Transaction</a>
        </td>
        <td class="markdown level1 summary"><p>Gets an instance of <a class="xref" href="C1.LiveLinq.ITransaction.html">ITransaction</a> associated with the view.
If a view has a transaction associated with it, that transaction's scope is opened automatically
every time the view is updated, so the programmer does not need to do it manually in code.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_AllowInResult_System_Type_" data-uid="C1.LiveLinq.LiveViews.View.AllowInResult(System.Type)">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.AllowInResult.html#C1_LiveLinq_LiveViews_View_AllowInResult_System_Type_">AllowInResult(Type)</a>
        </td>
        <td class="markdown level1 summary"><p>Specifies that a type with non-virtual properties can be used in a result selector.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_AsCollectionViewFactory" data-uid="C1.LiveLinq.LiveViews.View.AsCollectionViewFactory">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.AsCollectionViewFactory.html#C1_LiveLinq_LiveViews_View_AsCollectionViewFactory">AsCollectionViewFactory()</a>
        </td>
        <td class="markdown level1 summary"><p>Returns an instance of <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.icollectionviewfactory">ICollectionViewFactory</a> that can be used as a
source of a <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.data.collectionviewsource">CollectionViewSource</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_AsDynamic" data-uid="C1.LiveLinq.LiveViews.View.AsDynamic">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.AsDynamic.html#C1_LiveLinq_LiveViews_View_AsDynamic">AsDynamic()</a>
        </td>
        <td class="markdown level1 summary"><p>Used for views with anonymous type constructor as the result selector,
converts the <a class="xref" href="C1.LiveLinq.LiveViews.View.html">View</a> to a View&lt;dynamic&gt; so it can be used for data binding and programmatic access.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_DeferMaintenance" data-uid="C1.LiveLinq.LiveViews.View.DeferMaintenance">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.DeferMaintenance.html#C1_LiveLinq_LiveViews_View_DeferMaintenance">DeferMaintenance()</a>
        </td>
        <td class="markdown level1 summary"><p>Enters a defer cycle that you can use to make bulk changes to the view sources and delay automatic view maintenance.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_Maintain" data-uid="C1.LiveLinq.LiveViews.View.Maintain">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.Maintain.html#C1_LiveLinq_LiveViews_View_Maintain">Maintain()</a>
        </td>
        <td class="markdown level1 summary"><p>Brings the view up to date with its source data.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_PurgeEmptyGroups" data-uid="C1.LiveLinq.LiveViews.View.PurgeEmptyGroups">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.PurgeEmptyGroups.html#C1_LiveLinq_LiveViews_View_PurgeEmptyGroups">PurgeEmptyGroups()</a>
        </td>
        <td class="markdown level1 summary"><p>Remove empty groups from a grouping view.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_Rebuild" data-uid="C1.LiveLinq.LiveViews.View.Rebuild">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.Rebuild.html#C1_LiveLinq_LiveViews_View_Rebuild">Rebuild()</a>
        </td>
        <td class="markdown level1 summary"><p>Re-populates the view by re-executing the view's query.</p>
</td>
      </tr>
      <tr>
        <td id="C1_LiveLinq_LiveViews_View_SetTransaction_C1_LiveLinq_ITransaction_System_Boolean_" data-uid="C1.LiveLinq.LiveViews.View.SetTransaction(C1.LiveLinq.ITransaction,System.Boolean)">
          <a class="xref" href="C1.LiveLinq.LiveViews.View.SetTransaction.html#C1_LiveLinq_LiveViews_View_SetTransaction_C1_LiveLinq_ITransaction_System_Boolean_">SetTransaction(ITransaction, bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Sets the value of the <a class="xref" href="C1.LiveLinq.LiveViews.View.Transaction.html#C1_LiveLinq_LiveViews_View_Transaction">Transaction</a> property.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="extensionmethods">Extension Methods</h3>
  <div>
      <a class="xref" href="C1.LiveLinq.Hints.Indexed.html#C1_LiveLinq_Hints_Indexed__1___0_">Hints.Indexed&lt;T&gt;(T)</a>
  </div>
  <div>
      <a class="xref" href="C1.LiveLinq.Hints.Indexed.html#C1_LiveLinq_Hints_Indexed__1___0_C1_LiveLinq_IndexingHintAction_">Hints.Indexed&lt;T&gt;(T, IndexingHintAction)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.LiveLinq.WpfExtensions.AsLive.html#C1_WPF_LiveLinq_WpfExtensions_AsLive__1_System_Collections_Specialized_INotifyCollectionChanged_">WpfExtensions.AsLive&lt;T&gt;(INotifyCollectionChanged)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.LiveLinq.WpfExtensions.AsLive.html#C1_WPF_LiveLinq_WpfExtensions_AsLive__1_System_Collections_Specialized_INotifyCollectionChanged_C1_LiveLinq_LiveViews_ViewOrder_">WpfExtensions.AsLive&lt;T&gt;(INotifyCollectionChanged, ViewOrder)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.LiveLinq.WpfExtensions.ToIndexed.html#C1_WPF_LiveLinq_WpfExtensions_ToIndexed__1_System_Collections_Specialized_INotifyCollectionChanged_">WpfExtensions.ToIndexed&lt;T&gt;(INotifyCollectionChanged)</a>
  </div>

</div>
