¿Cómo obtener la opción de menú seleccionada de un observableArray de knockout.js?

Siento que me estoy perdiendo algo muy básico, pero no puedo obtener un menú desplegable que funcione como espero usando Knockout.js.

Tengo un conjunto de objetos que quiero presentar en un menú, y necesito encontrar la opción seleccionada y publicarla en el servidor. Puedo hacer que se muestre el menú, pero parece que no puedo obtener el valor del elemento seleccionado. Mi modelo de vista se ve así:

function ProjectFilterItem( name, id ) {
    this.Name = name;
    this.Id   = id;
}

function FilterViewModel() {
    this.projectFilters = ko.observableArray([
        new ProjectFilterItem( "foo", "1" ),
        new ProjectFilterItem( "bar", "2" ),
        new ProjectFilterItem( "baz", "3" )
    ]);
    this.selectedProject = ko.observable();
}

ko.applyBindings( new FilterViewModel() );

y mi marca de vista se ve así:

<select 
    id        = "projectMenu"   
    name      = "projectMenu"
    data-bind = "
        options:        projectFilters,
        optionsText:    'Name', /* I have to enquote the value or I get a JS error */
        optionsValue:   'Id',   /* If I put 'selectedProject here, nothing is echoed in the span below */
        optionsCaption: '-- Select Project --'
    "
></select>

<b>Selected Project:</b> <span data-bind="text: selectedProject"></span>

¿Cómo hacer que el elemento del menú seleccionado se muestre en el intervalo y se publique en el servidor? (Supongo que lo observable que represento en el intervalo es el mismo que publicaría). ¿Necesito otra propiedad en elProjectFilterItem, me gustathis.selected = ko.observable(false); ? Si es así, ¿cómo lo declararía como el objetivo del valor?

Respuestas a la pregunta(1)

Su respuesta a la pregunta