Extensiones reactivas para .NET (Rx) en WPF - MVVM

Estoy usando extensiones reactivas para NET (Rx) con Caliburn.Micro en mi aplicación WPF. Estoy tratando de portar mi aplicación WPF para usar una arquitectura MVVM y necesito monitorear los cambios en la propiedad Text de un control TextBox.

Si el último cambio de la propiedad Text fue hace más de 3 segundos, debo llamar al método LoadUser de un servicio.

Portar la lógica de mi solución anterior a la nueva solución con arquitectura MVVM.

ANTIGUO

XAML:

<TextBox Name="Nick" 
         Grid.Row="0"
         FontSize="14"
         Margin="2,2,2,2" 
         HorizontalAlignment="Stretch" 
         TextChanged="Nick_TextChanged" />

Encódigo detrás Tengo esto:

...

Observable.FromEvent<TextChangedEventArgs>(Nick, "TextChanged")
          .Select(e => ((TextBox)e.Sender).Text)
          .Where(text => text.Length > 3)               
          .Do(LoadUser)     
          .Throttle(TimeSpan.FromSeconds(3000))     
          .Subscribe(LoadUser);

...
private  void LoadUser(string text){...}

Me gustaría usar Observable.FromEvent en mi clase de modelo de vista. Algo como esto

WPF con MVVM

Ver:

<TextBox Name="Nick" 
         Grid.Row="0"
         FontSize="14"
         Margin="2,2,2,2" 
         HorizontalAlignment="Stretch"
         Micro:Message.Attach="[TextChanged]=[Action TextChanged()]"/>

Ver modelo:

[Export(typeof(IAddFriendViewModel))]
public class AddFriendViewModel : Screen, IAddFriendViewModel
{
    private string _nick;

    public string Nick
    {
        get { return _nick; }
        set
        {
            _nick = value;
            NotifyOfPropertyChange(()=>Nick);
        }
    }

    ...

    //how can I access to textbox control Nick in view from view model class?
    Observable.FromEvent<TextChangedEventArgs>(Nick, "TextChanged")
              .Select(e => ((TextBox)e.Sender).Text)
              .Where(text => text.Length > 3)
              .Do(LoadUser)
              .Throttle(TimeSpan.FromSeconds(3000))
              .Subscribe(LoadUser);
    ...

    private void LoadUser(string text)
    { }

    public void TextChanged()
    {
    }
}

Mi problema es Observable.FromEvent usa el control TextBox y no sé cómo puedo acceder a este control desde mi clase ViewModel.

Puedo vincular a la propiedad Text de TextBox o puedo vincular un comando a algún evento del control TextBox, pero este método usa un objeto en la Vista.

Gracias por las ideas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta