Réactif Extensions (Rx) + MVVM =?

L'un des exemples utilisés pour expliquer le pouvoir de Réactif Extensions (Rx) est la combinaison d'événements de souris dans un nouvel "événement" représentant les deltas au cours de la souris, faites glisser:

var mouseMoves = from mm in mainCanvas.GetMouseMove()
                 let location = mm.EventArgs.GetPosition(mainCanvas)
                 select new { location.X, location.Y};

var mouseDiffs = mouseMoves
    .Skip(1)
    .Zip(mouseMoves, (l, r) => new {X1 = l.X, Y1 = l.Y, X2 = r.X, Y2 = r.Y});

var mouseDrag = from _  in mainCanvas.GetMouseLeftButtonDown()
                from md in mouseDiffs.Until(
                    mainCanvas.GetMouseLeftButtonUp())
                select md;

Source: Matthieu Podwysocki de l'Introduction du Réactif Cadre de la série.

Dans MVVM en général, je efforce de garder mon .xaml.cs fichier aussi vide que possible, et un moyen de capturer des événements à partir de la vue avec des commandes dans le viewmodel purement dans le balisage est à l'aide d'un comportement:

<Button Content="Click Me">
    <Behaviors:Events.Commands>
        <Behaviors:EventCommandCollection>
            <Behaviors:EventCommand CommandName="MouseEnterCommand" EventName="MouseEnter" />
            <Behaviors:EventCommand CommandName="MouseLeaveCommand" EventName="MouseLeave" />
            <Behaviors:EventCommand CommandName="ClickCommand" EventName="Click" />
        </Behaviors:EventCommandCollection>
    </Behaviors:Events.Commands>
</Button>

Source: Brian Genisio.

Le Réactif de Cadre semble être plus orienté vers le traditionnel modèle MVC où un contrôleur connaît le point de vue et peut faire référence à son directement des événements.

Mais, j'ai envie d'avoir mon gâteau et le manger!

Comment voulez-vous combiner ces deux modèles?

  • Plate-forme? Silverlight?
  • Anthony: est-il question?