title: Selected option Id and value
body: <p>Normally when I have a select list I bind it with knockout like this:</p>
  
  <pre><code>&lt;select
      data-bind="
          options: data,
          optionsText: 'Name',
          optionsValue: 'Id',
          optionsCaption: 'Select ...',
          value: dataSelectedId" &gt;&lt;/select&gt;
  </code></pre>
  
  <p>But there's a problem with such binding: you do not have the selected object. You have its ID instead. <strong>How to merge this two requirements: have binding to both item's id and item itself?</strong></p>
  
  <p>Right now I use <code>computed</code> observable to get selected item, which usually looks like this:</p>
  
  <pre><code>self.dataSelectedCO = ko.computed(function() {
      for (var i = 0; i &lt; self.data().length; ++i)
          if (self.data()[i].Id() == self.dataSelectedId())
              return self.data()[i];
  });
  </code></pre>
  
  <p>I've tried to wrap value getter using a custom function but it's called for every element when selection changes, so there are no benefits here of using this approach. <a href="http://jsfiddle.net/Zkpsj/8/" rel="noreferrer" title="JSFiddle of my tries">Here</a>'s a jsfiddle.</p>