# C1.LiveLinq.LiveViews.View.IsReadOnly

## Content

<div class="doc-site-dotnet-api-container">



<h1 id="C1_LiveLinq_LiveViews_View_IsReadOnly_" data-uid="C1.LiveLinq.LiveViews.View.IsReadOnly*">IsReadOnly Property
</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>



<a id="C1_LiveLinq_LiveViews_View_IsReadOnly_" data-uid="C1.LiveLinq.LiveViews.View.IsReadOnly*"></a>
<h4 id="C1_LiveLinq_LiveViews_View_IsReadOnly" data-uid="C1.LiveLinq.LiveViews.View.IsReadOnly">IsReadOnly</h4>
<div class="markdown level1 summary"><p>Gets a value indicating whether this view is read-only, not updatable.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public bool IsReadOnly { get; }</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public ReadOnly Property IsReadOnly As Boolean</code></pre>
</div>
<h5 class="implements">Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.ilist.isreadonly">IList.IsReadOnly</a></div>
<h5 id="C1_LiveLinq_LiveViews_View_IsReadOnly_remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>Properties exposed by a view can be updatable or read-only. Updatable properties of a view can be modified directly in the view.</p>
<p>All properties of a read-only (not updatable) view are read-only.
In an updatable view, properties directly corresponding to base data (source) properties are updatable,
calculated properties are read-only.
For example, in a view
<pre><code class="lang-csharp">from x in X
select new { x.P, Q = x.Q + 1 }</code></pre>
P is updatable and Q is read-only.
<p>Read-only properties of a view cannot be modified directly in the view, but they still reflect up-to-date values of the source,
so the difference is often not critical, you can always modify corresponding property in the source, that
will automatically change the property in the view.</p>
<p>Also, a read-only view cannot be cleared or its rows deleted or new rows added directly in the view
(but all these actions can be performed on the source data collection and they will normally result 
in the corresponding changes of the view).</p>
<p>A <b>Join</b> view is read-only by default, but one of its two parts can be made updatable using the <a class="xref" href="C1.LiveLinq.LiveViewExtensions.AsUpdatable.html#C1_LiveLinq_LiveViewExtensions_AsUpdatable__1_C1_LiveLinq_LiveViews_View___0__">AsUpdatable&lt;T&gt;(View&lt;T&gt;)</a> method.</p>
</div>
<h5 id="C1_LiveLinq_LiveViews_View_IsReadOnly_seealso">See Also</h5>
<div class="seealso">
    <div><a class="xref" href="C1.LiveLinq.LiveViewExtensions.AsUpdatable.html#C1_LiveLinq_LiveViewExtensions_AsUpdatable__1_C1_LiveLinq_LiveViews_View___0__">AsUpdatable</a>&lt;T&gt;(<a class="xref" href="C1.LiveLinq.LiveViews.View-1.html">View</a>&lt;T&gt;)</div>
    <div><a class="xref" href="C1.LiveLinq.LiveViews.ViewRow.html">ViewRow</a></div>
    <div><a class="xref" href="C1.LiveLinq.LiveViews.ViewRowState.html">ViewRowState</a></div>
</div>
</div>
