# C1.LiveLinq.Collections.IndexableObject

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_LiveLinq_Collections_IndexableObject" data-uid="C1.LiveLinq.Collections.IndexableObject" class="text-break">IndexableObject Class
</h1>
  <div class="markdown level0 summary"><p>Base class for collection element classes.</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">IndexableObject</span></div>
      <div class="level2"><a class="xref" href="C1.LiveLinq.LiveViews.ViewRow.html">ViewRow</a></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.inotifypropertychanged">INotifyPropertyChanged</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.LiveLinq.Collections.html">C1.LiveLinq.Collections</a></h6>
  <h6><strong>Assembly</strong>: C1.LiveLinq.4.8.dll</h6>
  <h5 id="C1_LiveLinq_Collections_IndexableObject_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class IndexableObject : INotifyPropertyChanged</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class IndexableObject
    Implements INotifyPropertyChanged</code></pre>
  </div>
  <h5 id="C1_LiveLinq_Collections_IndexableObject_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p>Using <a class="xref" href="C1.LiveLinq.Collections.IndexedCollection-1.html">IndexedCollection&lt;T&gt;</a> and
<span style="C1H Jump">other collection classes|tag=LiveLinq to Objects: IndexedCollection(T) and other collection classes</span>
in LiveLinq to Objects, the element class <b>T</b> must implement the property change notification interface
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.inotifypropertychanged">INotifyPropertyChanged</a>.
The easiest way to satisfy this requirement is to derive that class from
<b>IndexableObject</b>. Then you can use its method <a class="xref" href="C1.LiveLinq.Collections.IndexableObject.OnPropertyChanged.html#C1_LiveLinq_Collections_IndexableObject_OnPropertyChanged_System_String_">OnPropertyChanged(string)</a>
to send the required property change notifications. For example, a <b>Customer</b> class can be defined like this:</p>
<pre><code class="lang-csharp">public class Customer : IndexableObject
{
.....................
    private string _name;
    public string Name
    {
        get { return _name; }
        set
        {
            _name = value;
            OnPropertyChanged("Name");
        }
    }
.....................
}</code></pre>
</div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_LiveLinq_Collections_IndexableObject__ctor" data-uid="C1.LiveLinq.Collections.IndexableObject.#ctor">
          <a class="xref" href="C1.LiveLinq.Collections.IndexableObject.-ctor.html#C1_LiveLinq_Collections_IndexableObject__ctor">IndexableObject()</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.LiveLinq.Collections.IndexableObject.html">IndexableObject</a> class.</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_Collections_IndexableObject_OnPropertyChanged_System_String_" data-uid="C1.LiveLinq.Collections.IndexableObject.OnPropertyChanged(System.String)">
          <a class="xref" href="C1.LiveLinq.Collections.IndexableObject.OnPropertyChanged.html#C1_LiveLinq_Collections_IndexableObject_OnPropertyChanged_System_String_">OnPropertyChanged(string)</a>
        </td>
        <td class="markdown level1 summary"><p>Raises the <a class="xref" href="C1.LiveLinq.Collections.IndexableObject.PropertyChanged.html">PropertyChanged</a> event.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="events">Events
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_LiveLinq_Collections_IndexableObject_PropertyChanged" data-uid="C1.LiveLinq.Collections.IndexableObject.PropertyChanged">
          <a class="xref" href="C1.LiveLinq.Collections.IndexableObject.PropertyChanged.html">PropertyChanged</a>
        </td>
        <td class="markdown level1 summary"><p>Occurs when a property value changes, after it has been changed.</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>
