<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>Continuous LINQ</title><link>http://clinq.codeplex.com/project/feeds/rss</link><description>Continous LINQ is a .NET Framework 3.5 extension that builds on the LINQ query syntax to create continuous, self-updating result sets.    In traditional LINQ queries, you write your query and get stale results. With Continuous LINQ,       you write a query and the results of that query are continuously updated as changes are made to the source collection or items within the source collection.       CLINQ has tremendous value in GUI development and is especially useful in binding to filtered streams of data such as financial or other network message data.</description><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I can tell that nsulikow's answer solves those warning issues. Good job man.&lt;/p&gt;
&lt;/div&gt;</description><author>Natxo</author><pubDate>Wed, 26 Dec 2012 16:41:02 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20121226044102P</guid></item><item><title>Source code checked in, #69631</title><link>http://clinq.codeplex.com/SourceControl/changeset/changes/69631</link><description>Upgrade&amp;#58; New Version of LabDefaultTemplate.xaml. To upgrade your build definitions, please visit the following link&amp;#58; http&amp;#58;&amp;#47;&amp;#47;go.microsoft.com&amp;#47;fwlink&amp;#47;&amp;#63;LinkId&amp;#61;254563</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 21:13:48 GMT</pubDate><guid isPermaLink="false">Source code checked in, #69631 20121001091348P</guid></item><item><title>Source code checked in, #69630</title><link>http://clinq.codeplex.com/SourceControl/changeset/changes/69630</link><description>Checked in by server upgrade</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 21:07:03 GMT</pubDate><guid isPermaLink="false">Source code checked in, #69630 20121001090703P</guid></item><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Just change Curry.tt so that the for loops start at 17 (because .Net 4 already has the first 16 definitions)&amp;nbsp;&lt;/p&gt;
&lt;div id="_mcePaste" class="mcePaste" style="position: absolute; width: 1px; height: 1px; overflow: hidden; top: 0px; left: -10000px;"&gt;﻿&lt;/div&gt;
&lt;p&gt;namespace System&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;lt;#for(int i=17;i&amp;lt;=20;i++){#&amp;gt;public delegate TResult Func&amp;lt;T1, T2, T3, T4, &amp;lt;#FormatRange("T{0}, ", 5, i); #&amp;gt;TResult&amp;gt;(&amp;lt;#FormatRange("T{0} t{0}", ", ", 1, i);#&amp;gt;);&lt;br /&gt;&amp;nbsp;&amp;lt;#}#&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;lt;#for(int i=17;i&amp;lt;=20;i++){#&amp;gt;public delegate void Action&amp;lt;T1, T2, T3, T4, &amp;lt;#FormatRange("T{0}", ", ", 5, i); #&amp;gt;&amp;gt;(&amp;lt;#FormatRange("T{0} t{0}", ", ", 1, i);#&amp;gt;);&lt;br /&gt;&amp;nbsp;&amp;lt;#}#&amp;gt;&lt;br /&gt;}&lt;/p&gt;&lt;/div&gt;</description><author>nsulikow</author><pubDate>Fri, 17 Aug 2012 22:31:58 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20120817103158P</guid></item><item><title>New Post: Another GroupJoin bug</title><link>http://clinq.codeplex.com/discussions/392079</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Try the following code:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;    public class GroupJoinTestFixture
    {
        public class WrappedString : INotifyPropertyChanged
        {
            public WrappedString(string s)
            {
                Value = s;
            }

            public string Value { get; set; }

            #region Implementation of INotifyPropertyChanged

            public event PropertyChangedEventHandler PropertyChanged;

            #endregion
        }

        [Test]
        public void Test()
        {
            ObservableCollection outer = new ObservableCollection { new WrappedString(&amp;quot;hello&amp;quot;), new WrappedString(&amp;quot;aloha&amp;quot;) };
            ObservableCollection inner = new ObservableCollection { new WrappedString(&amp;quot;hello&amp;quot;), new WrappedString(&amp;quot;aloha&amp;quot;) };
            ReadOnlyContinuousCollection inner2 = inner.Where(ws =&amp;gt; ws.Value != &amp;quot;&amp;quot;);

            ReadOnlyContinuousCollection&amp;gt;&amp;gt; join =
                outer.
                    GroupJoin(inner2,
                              outerItem =&amp;gt; outerItem.Value,
                              innerItem =&amp;gt; innerItem.Value,
                              (outerItem, innerList) =&amp;gt; new RichKeyValuePair&amp;gt;(outerItem, innerList));
            var hasInners =
                join.Where(pair =&amp;gt; pair.Value.Count &amp;gt; 0);
            outer.Clear();
            outer.Add(new WrappedString(&amp;quot;hello&amp;quot;));
            outer.Add(new WrappedString(&amp;quot;aloha&amp;quot;));
            inner.RemoveAt(1);
        }
    }&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;After the last line (inner.RemoveAt(1)) there should be only one item in the hasInners list. But there are two.&lt;/p&gt;
&lt;p&gt;When we clear the outer list, GroupJoinReadOnlyContinuousCollection.OnOuterReset is called. It calls RebuildAll which in turn calls RebuildAllInner. But there's no need to rebuild the _keyToInnerLookup, and doing so creates redundant entries in it.&lt;/p&gt;
&lt;p&gt;The fix is that OnOuterReset should call RebuildAllOuter instead of RebuildAll.&lt;/p&gt;
&lt;/div&gt;</description><author>balexander</author><pubDate>Fri, 17 Aug 2012 19:33:55 GMT</pubDate><guid isPermaLink="false">New Post: Another GroupJoin bug 20120817073355P</guid></item><item><title>New Post: GroupJoin bugs?</title><link>http://clinq.codeplex.com/discussions/357493</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I'm seeing some bad looking behavior in GroupJoin.&lt;/p&gt;
&lt;p&gt;In the constructor, there is:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _outerReferenceTracker = new ReferenceCountTracker&amp;lt;TOuter&amp;gt;(outer);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RebuildAll();&lt;/p&gt;
&lt;p&gt;If the 'outer' list is non-empty, the first line fill _outerReferenceTracker. Then, RebuildAll re-adds everything in _outer. It does not clear _outerReferenceTracker first. The end result is that every item has a reference count of 2.&lt;/p&gt;
&lt;p&gt;An unrelated problem is in RemoveOuter, where there's the line:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;OuterEntry&amp;gt; outersMatchingKey = _keyToOuterLookup[outerEntry.Key];&lt;/p&gt;
&lt;p&gt;It appears to me that _keyToOuterLookup is not being updated when an outer item's key changes. I encountered this when I changed the key of an outer item, and later Removed that outer item. RemoveOuter tries to find the key in _keyToOuterLookup, it's not
 there, and an exception is thrown.&lt;/p&gt;
&lt;p&gt;Even if someone's code doesn't encounter this exception, the fact that items have an extra reference count and key changes are not tracked leads to _outerReferenceTracker and _keyToOuterLookup containing no-longer-used information.&lt;/p&gt;
&lt;/div&gt;</description><author>balexander</author><pubDate>Tue, 29 May 2012 13:59:04 GMT</pubDate><guid isPermaLink="false">New Post: GroupJoin bugs? 20120529015904P</guid></item><item><title>New Post: SortingReadOnlyContinuousCollection - ItemChanged</title><link>http://clinq.codeplex.com/discussions/356131</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;When a property of an&amp;nbsp;item changes, the SortingReadonlyCollection removes it and adds it again at the new position. Two events are sent to any subscriber.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;/p&gt;
&lt;p&gt;Org Code in SortingReadOnlyContinousCollection:&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 OnItemChanged(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 sender, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;INotifyPropertyChanged&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;span style="font-family:Consolas; font-size:x-small"&gt;itemThatChanged) &lt;br&gt;
{&lt;br&gt;
TSource item = (TSource)itemThatChanged;&lt;br&gt;
RemoveItemFromOutput(item);&lt;br&gt;
InsertItemInSortOrder(item);&lt;br&gt;
}&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;The problem occures, when you f.e bind a SortingReadonlyCollection to a grid. You lose the SelectedItem on the grid, as soon the collection gets reorderd - because the item is removed (for a short time) from the ItemsSource.&lt;/p&gt;
&lt;p&gt;I think it would be better to do the removing/adding just within the SortingReadonlyCollection and fire
&lt;strong&gt;one &lt;/strong&gt;CollectionChanged event with the action &lt;strong&gt;Move &lt;/strong&gt;
(like the ObservableCollection&amp;lt;T&amp;gt; does)&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;New
 Code:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;void
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;OnItemChanged(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 sender, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;INotifyPropertyChanged&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;span style="font-family:Consolas; font-size:x-small"&gt;itemThatChanged) &lt;br&gt;
{&lt;br&gt;
TSource item = (TSource)itemThatChanged;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 oldIndex = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.IndexOf(item);&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;br&gt;
&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.RemoveAt(oldIndex);
&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 newIndex = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.BinarySearch(item,
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.KeySorter);&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;(newIndex
 &amp;lt; 0) &lt;br&gt;
{&lt;br&gt;
&amp;nbsp; newIndex = ~newIndex;&lt;br&gt;
}&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;br&gt;
this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.Insert(newIndex, item);&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;br&gt;
if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt; &lt;span style="font-family:Consolas; font-size:x-small"&gt;
(oldIndex == newIndex)&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&amp;nbsp;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;FireMoveItem(item, newIndex, oldIndex);&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Addidional Method in ReadOnlyContinousCollection:&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 FireMoveItem(T item, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 index, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;span style="font-family:Consolas; font-size:x-small"&gt;oldIndex) &lt;br&gt;
{&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;font face="Consolas" size="2"&gt;&lt;/p&gt;
&lt;p&gt;FireCollectionChanged(&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;NotifyCollectionChangedEventArg&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;NotifyCollectionChangedAction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/font&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Move, item, index, oldIndex));
&lt;br&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&amp;nbsp;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;</description><author>claudioganahl</author><pubDate>Thu, 17 May 2012 09:25:25 GMT</pubDate><guid isPermaLink="false">New Post: SortingReadOnlyContinuousCollection - ItemChanged 20120517092525A</guid></item><item><title>New Post: Bug in ClearSubscriptions?</title><link>http://clinq.codeplex.com/discussions/353599</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I had a situation where I had one item in an ObservableCollection that was being used in a CLINQ expression. I cleared the ObservableCollection, then re-added that same item. I got an exception in NotifyCollectionChangedMonitor.SubscribeToItem at the line
 that says:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; this.Subscriptions.Add(item, subscriptionTree);&lt;/p&gt;
&lt;p&gt;The exception was that the key already exists, and sure enough, 'item' was already in the Subscriptions dictionary.&lt;/p&gt;
&lt;p&gt;If I changed the Clear of my ObservableCollection to a RemoveAt(0), then re-added the item, CLINQ worked fine.&lt;/p&gt;
&lt;p&gt;When I do the RemoveAt, NotifyCollectionChangedMonitor.UnsubscribeFromItem gets called and it has a line that says:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; this.Subscriptions.Remove(item);&lt;/p&gt;
&lt;p&gt;But if I call Clear instead of RemoveAt, NotifyCollectionChangedMonitor.ClearSubscriptions is called and it does not appear to clear the Subscriptions dictionary.&lt;/p&gt;
&lt;p&gt;Is this a bug?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; Bob Alexander&lt;/p&gt;
&lt;/div&gt;</description><author>balexander</author><pubDate>Wed, 25 Apr 2012 19:10:28 GMT</pubDate><guid isPermaLink="false">New Post: Bug in ClearSubscriptions? 20120425071028P</guid></item><item><title>Created Issue: Possible bug in ExpressionPropertyAnalyzer.AnalyzeLambda [9271]</title><link>http://clinq.codeplex.com/workitem/9271</link><description>The for-loop in the ExpressionPropertyAnalyzer.AnalyzeLambda lambda method looks suspicious to me&amp;#58;&lt;br /&gt;&lt;br /&gt;            for &amp;#40;int i &amp;#61; 0&amp;#59; i &amp;#60; expression.Parameters.Count&amp;#59; i&amp;#43;&amp;#43;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                ParameterExpression parameterExpression &amp;#61; expression.Parameters&amp;#91;0&amp;#93;&amp;#59;&lt;br /&gt;                tree.Children.Add&amp;#40;new ParameterNode&amp;#40;parameterExpression.Type, parameterExpression.Name&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;Shouldn&amp;#39;t the line&lt;br /&gt;&lt;br /&gt;                ParameterExpression parameterExpression &amp;#61; expression.Parameters&amp;#91;0&amp;#93;&amp;#59;&lt;br /&gt;&lt;br /&gt;be changed to&amp;#58;&lt;br /&gt;&lt;br /&gt;                ParameterExpression parameterExpression &amp;#61; expression.Parameters&amp;#91;i&amp;#93;&amp;#59;&lt;br /&gt;</description><author>candritzky</author><pubDate>Fri, 30 Mar 2012 07:09:29 GMT</pubDate><guid isPermaLink="false">Created Issue: Possible bug in ExpressionPropertyAnalyzer.AnalyzeLambda [9271] 20120330070929A</guid></item><item><title>New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ</title><link>http://clinq.codeplex.com/discussions/273641</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I should also add, we're using Visual Studio 2008 / Visual C++ for its C++/CLI features (among other things). Which it seems CLINQ will support?&lt;/p&gt;&lt;/div&gt;</description><author>mwpowellnm</author><pubDate>Fri, 23 Sep 2011 18:03:31 GMT</pubDate><guid isPermaLink="false">New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ 20110923060331P</guid></item><item><title>New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ</title><link>http://clinq.codeplex.com/discussions/273641</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;This primer looks like as good an introduction as any to demonstrate the issue. I think that basically unlocks what I need to do.&lt;/p&gt;
&lt;p&gt;&lt;a title="The Linq between C# and C++" href="http://weblogs.asp.net/kennykerr/archive/2006/05/11/The-Linq-between-C_2300_-and-C_2B002B00_.aspx"&gt;The Linq between C# and C++&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><author>mwpowellnm</author><pubDate>Fri, 23 Sep 2011 17:43:30 GMT</pubDate><guid isPermaLink="false">New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ 20110923054330P</guid></item><item><title>New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ</title><link>http://clinq.codeplex.com/discussions/273641</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;CLINQ'ers,&lt;/p&gt;
&lt;p&gt;I'm sure you get asked this from time to time. Where should a veteran C# .NET LINQ developer begin as a C&amp;#43;&amp;#43;/CLI CLINQ newbie?&lt;/p&gt;
&lt;p&gt;Briefly, I've got some classes in a C&amp;#43;&amp;#43;/CLI library that are exposing some IEnumerable&amp;lt;&amp;gt; results given a Dictionary&amp;lt;&amp;gt; backing field. I would like to ask a series of questions about that dictionary exposed through the enumerations. It seems CLINQ
 a strong viable approach to accomplishing this task?&lt;/p&gt;
&lt;p&gt;Where might I find some documentation? Or I just downloaded the source itself as well. Or for some tutorials? Throughout Codeplex?&lt;/p&gt;
&lt;p&gt;Thanks...&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Michael&lt;/p&gt;
&lt;/div&gt;</description><author>mwpowellnm</author><pubDate>Fri, 23 Sep 2011 17:38:52 GMT</pubDate><guid isPermaLink="false">New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ 20110923053852P</guid></item><item><title>New Post: WeakPropertyBridge.CheckForUnsubscribe</title><link>http://clinq.codeplex.com/discussions/273071</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I am chasing memory leaks on my app, and noticed there are quite a few related to ReactiveObject. In looking at WeakPropertyBridge.CheckForUnsubscribe, I noticed that calls to it are commented out, and not maitained for a while (they don't compile correctly
 anymore in uncommented). What is the reason for the call to be commented out? Is there any other place in the code that is doing that job? Is doesn't look like it to me...&lt;/p&gt;
&lt;/div&gt;</description><author>PombeirP</author><pubDate>Mon, 19 Sep 2011 14:20:10 GMT</pubDate><guid isPermaLink="false">New Post: WeakPropertyBridge.CheckForUnsubscribe 20110919022010P</guid></item><item><title>New Post: Inserts into a collection are registered as add</title><link>http://clinq.codeplex.com/discussions/269975</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Consider the following query:&lt;/p&gt;
&lt;p&gt;ContinuousItemList = from item in Model.ItemList select new ItemViewModel(item);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now say that there are 5 items in the list. &amp;nbsp;If I execute the following code, the item inserted at index 2 of Model.ItemList appears at the end of the ContinuousItemList. &amp;nbsp;As a result the order across the two lists is not consistent.&lt;/p&gt;
&lt;p&gt;Item item = Model.Items[0];&lt;/p&gt;
&lt;p&gt;Model.Items.RemoveAt(0);&lt;/p&gt;
&lt;p&gt;Model.Items.Insert(2, item)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Am I doing something wrong? &amp;nbsp;Is this a known problem? &amp;nbsp;Is there a workaround?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;-Jeff&lt;/p&gt;
&lt;/div&gt;</description><author>jefflowe7</author><pubDate>Mon, 22 Aug 2011 16:20:19 GMT</pubDate><guid isPermaLink="false">New Post: Inserts into a collection are registered as add 20110822042019P</guid></item><item><title>Commented Issue: Using with .NET 4.0 [6958]</title><link>http://clinq.codeplex.com/workitem/6958</link><description>I had a little bit of a difficulty using this within a .NET 4.0 solution. The compiler was complaining that there were duplicate implementations of the Func and Action delegates. In the end, I recompiled the solution &amp;#40;Clinq 2.2&amp;#41; and updated the Curry.tt file so that it didn&amp;#39;t create as many of these delegates. I&amp;#39;ve attached my updated Curry.tt file.&lt;br /&gt;Comments: ** Comment from web user: rea5245 ** &lt;p&gt;I see what happened. Curry.tt generates a bunch of System.Action&amp;#60;&amp;#62; and System.Func&amp;#60;&amp;#62; delegates with as few as 6 and as many as 20 arguments. In 3.5, .NET only included Action and Func with up to 5 arguments, so there was no name collision. In 4.0, .NET has added Action and Func delegates with up to 16 arguments, so the names Curry was generating collided.&lt;/p&gt;&lt;p&gt;Your modification removes Curry&amp;#39;s Action and Func with 6 through 16 arguments but continues to generate them with 17, 18, 19, and 20 arguments.&lt;/p&gt;&lt;p&gt;Alas, I figured this all out on my own before coming across your post. Still, thank you&amp;#33;&lt;br /&gt;&lt;/p&gt;</description><author>rea5245</author><pubDate>Fri, 11 Mar 2011 18:32:53 GMT</pubDate><guid isPermaLink="false">Commented Issue: Using with .NET 4.0 [6958] 20110311063253P</guid></item><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I too would like to see this happen. We are using this in a .NET 4.0 project, so we ended up making the necessary source changes ourselves.&lt;/p&gt;
&lt;p&gt;For the System.Action issue, we changed the Curry.tt file so that it didn't generate as many variations of the System.Action delegates. I think that was the only thing we had to do to get it compiling under .NET 4.0.&lt;/p&gt;
&lt;p&gt;We've made a couple other tweaks here and there too. I'd prefer not to do so, but there hasn't been a lot of response from the project contributors so far. I'm hoping they are still keeping an eye on this project. If not, maybe the community could pick it up.&lt;/p&gt;
&lt;p&gt;- Nathan&lt;/p&gt;&lt;/div&gt;</description><author>nallenwagner</author><pubDate>Thu, 10 Mar 2011 18:20:33 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20110310062033P</guid></item><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I'm upgrading my project to .NET 4.0 and, while CLINQ appears to run, it triggers warnings that &amp;quot;The predefined type 'System.Action' is defined in multiple assemblies in the global alias; using definition from 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll'&amp;quot;&lt;/p&gt;
&lt;p&gt;I believe this is caused by ContinuousLinq's references to 3.5's System.Action conflicting with the rest of my project's references to the 4.0 version.&lt;/p&gt;
&lt;p&gt;I tried recompiling ContinuousLinq for 4.0, but that caused a runtime exception in SmartFilterAdapter that I don't know how to solve.&lt;/p&gt;
&lt;p&gt;Are there any plans to recompile and validate CLINQ for .NET 4.0?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; Bob&lt;/p&gt;
&lt;/div&gt;</description><author>rea5245</author><pubDate>Thu, 10 Mar 2011 17:13:39 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20110310051339P</guid></item><item><title>New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection</title><link>http://clinq.codeplex.com/discussions/229692</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;To me the cleanest option is not adding "using ContinuousLinq" and use it explicitly where you need it:&lt;/p&gt;
&lt;p&gt;
&lt;div style="color: black; background-color: white;"&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; ContinuousLinq.ReadOnlyContinuousCollection&amp;lt;foo&amp;gt; foos;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;</description><author>Natxo</author><pubDate>Tue, 22 Feb 2011 09:28:50 GMT</pubDate><guid isPermaLink="false">New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection 20110222092850A</guid></item><item><title>New Post: Where() on Items that dont implement INotifyPropertyChanged</title><link>http://clinq.codeplex.com/discussions/83769</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hello Lector,&lt;/p&gt;
&lt;p&gt;i have got the same problem.&lt;/p&gt;
&lt;p&gt;i made a small research and it seems that changing the objects used in the where-clause does not end with an Updating of the list as suspected&lt;/p&gt;
&lt;p&gt;i made a small wpf application that demonstrates this. its a WPF App.&lt;/p&gt;
&lt;p&gt;does anyone know if Clinq will get developed any further to support such scenarios ??&lt;/p&gt;
&lt;p&gt;MainWindow.xaml.cs&lt;/p&gt;
&lt;p&gt;
&lt;div style="color: black; background-color: white;"&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Text;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Data;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Media.Imaging;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Navigation;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; ContinuousLinq;

&lt;span style="color: blue;"&gt;namespace&lt;/span&gt; ClinqTest
{
    &lt;span style="color: gray;"&gt;///&lt;/span&gt; &lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Interaction logic for MainWindow.xaml&lt;/span&gt;
    &lt;span style="color: gray;"&gt;///&lt;/span&gt; &lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;partial&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; MainWindow : Window
    {
        System.Collections.ObjectModel.ObservableCollection&amp;lt;Cow&amp;gt; cowList =
                &lt;span style="color: blue;"&gt;new&lt;/span&gt; System.Collections.ObjectModel.ObservableCollection&amp;lt;Cow&amp;gt;();


        &lt;span style="color: blue;"&gt;public&lt;/span&gt; Cow CompareCow { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; IEnumerable&amp;lt;Cow&amp;gt; CowList
        {
            &lt;span style="color: blue;"&gt;get&lt;/span&gt;
            {
                &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; x &lt;span style="color: blue;"&gt;in&lt;/span&gt; cowList &lt;span style="color: blue;"&gt;where&lt;/span&gt; CompareCow == &lt;span style="color: blue;"&gt;null&lt;/span&gt; || x.Name == CompareCow.Name &lt;span style="color: blue;"&gt;select&lt;/span&gt; x;
            }
        }
                
        &lt;span style="color: blue;"&gt;public&lt;/span&gt; MainWindow()
        {
            CompareCow = &lt;span style="color: blue;"&gt;new&lt;/span&gt; Cow(&lt;span style="color: #a31515;"&gt;"Hansi"&lt;/span&gt;);
            InitializeComponent();
        }

        &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Button_Click(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            cowList.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; Cow(newCowsName.Text));
        }
    }

    &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; Cow : INotifyPropertyChanged
    {
        &lt;span style="color: blue;"&gt;public&lt;/span&gt; Cow(&lt;span style="color: blue;"&gt;string&lt;/span&gt; name)
        {
            m_name = name;
        }

        &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; m_name;

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Name
        {
            &lt;span style="color: blue;"&gt;get&lt;/span&gt;
            {
                &lt;span style="color: blue;"&gt;return&lt;/span&gt; m_name;
            }

            &lt;span style="color: blue;"&gt;set&lt;/span&gt;
            {
                m_name = value;
                &lt;span style="color: blue;"&gt;if&lt;/span&gt; (PropertyChanged != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)
                {
                    PropertyChanged(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, &lt;span style="color: blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(&lt;span style="color: #a31515;"&gt;"Name"&lt;/span&gt;));
                }
            }
        }

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;event&lt;/span&gt; PropertyChangedEventHandler PropertyChanged;

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; ToString()
        {
            &lt;span style="color: blue;"&gt;return&lt;/span&gt; Name;
        }
    }
}

&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;MainWindow.xaml&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;div style="color: black; background-color: white;"&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Window&lt;/span&gt; &lt;span style="color: red;"&gt;x:Class&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;ClinqTest.MainWindow&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;
        &lt;span style="color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;
        &lt;span style="color: red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;
        &lt;span style="color: red;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;MainWindow&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Height&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;350&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Width&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;525&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ListBox&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;listBox&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;ItemsSource&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;{Binding ElementName=self, Path=CowList}&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;newCowsName&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Button&lt;/span&gt; &lt;span style="color: red;"&gt;Content&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;Add Cow&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Click&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;Button_Click&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Filter this cow name&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;{Binding ElementName=self,Path=CompareCow.Name}&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Window&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;</description><author>ThomasHaller</author><pubDate>Mon, 21 Feb 2011 22:28:27 GMT</pubDate><guid isPermaLink="false">New Post: Where() on Items that dont implement INotifyPropertyChanged 20110221102827P</guid></item><item><title>New Post: vs version</title><link>http://clinq.codeplex.com/Thread/View.aspx?ThreadId=243179</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Not sure what problems you're having but I had no difficulty in opening and upgrading the project to .net 4.0 in VS 2010 Ultimate&lt;/p&gt;
&lt;/div&gt;</description><author>joshkrak</author><pubDate>Thu, 27 Jan 2011 01:49:17 GMT</pubDate><guid isPermaLink="false">New Post: vs version 20110127014917A</guid></item></channel></rss>