title: Table not updated when ko.observablearray changes
body: <p>I'm binding a ko.observablearray to a table.  Each object (called a 'group') in the array is bound to a table.  Each group holds another (non-knockout) array of codes.  Each code is bound to a row.  Each code has a boolean, bound to a checkbox.  </p>
  
  <p>If none of the booleans are true in a group, I want all the checkboxes for that group to be enabled.  If at least one of the booleans are true in a group, I want the false checkboxes for that group to be disabled, and the true checkboxes to be enabled.  When the page is loaded, this works as expected; however, when I check or uncheck a box, the enabled/disabled status of the boxes does not change.  Looking at it with the debugger, the observablearray is being updated, but the data in the table is not.  </p>
  
  <p>Page: </p>
  
  <pre><code>&lt;table data-bind="foreach: {data: Groups}"&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th colspan="3" data-bind="text: GroupName"&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody data-bind="foreach: {data: Codes}"&gt;
          &lt;tr&gt;
              &lt;td data-bind="text: CodeId"&gt;&lt;/td&gt;
              &lt;td data-bind="text: Desc"&gt;&lt;/td&gt;
              &lt;td&gt;
                  &lt;input type="checkbox" data-bind="checked: Prime, disable: $root.HasPrime($parent) &amp;&amp; !Prime" /&gt;
              &lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
  &lt;/table&gt;
  </code></pre>
  
  <p>Javascript function that tests if there are any true values in a group: </p>
  
  <pre><code>var HasPrime = function (gr) {
      for (var i = 0; i &lt; gr.Codes.length; i++) {
          if (gr.Codes[i].Prime === true) {
              return true;
          }
      }
      return false;
  };
  </code></pre>
  
  <p>Fiddle: <a href="http://jsfiddle.net/NSLPu/2/" rel="nofollow">http://jsfiddle.net/NSLPu/2/</a></p>