 <p>There are several compilation errors in your example including a malformed lambda expression, mismatched parentheses, incorrect identitfiers (<code>SelectItem</code> is not a property, I'm assuming you mean <code>SelectedItem</code> not <code>SelectedItems</code>), and incorrect indentation following the <code>let feed</code> binding. </p> <p>Below is a simplified example that works as you intended. The selected item in the top ListBox is put into the bottom ListBox when the user hits Enter.</p> <pre><code>open System open System.Windows open System.Windows.Controls open System.Windows.Input [&lt;EntryPoint&gt;] [&lt;STAThread&gt;] let main argv = let panel = new DockPanel() let listBox = new ListBox() for i in [| 1 .. 10 |] do listBox.Items.Add i |&gt; ignore DockPanel.SetDock(listBox, Dock.Top) let listBox2 = new ListBox(Height = Double.NaN) panel.Children.Add listBox |&gt; ignore panel.Children.Add listBox2 |&gt; ignore listBox.KeyUp |&gt; Event.filter (fun e -&gt; listBox.SelectedItems.Count &gt; 0) |&gt; Event.filter (fun e -&gt; e.Key = Key.Enter) |&gt; Event.add (fun e -&gt; let i = unbox&lt;int&gt; listBox.SelectedItem listBox2.Items.Add(i) |&gt; ignore) let win = new Window(Content = panel) let application = new Application() application.Run(win) |&gt; ignore 0 </code></pre>