I looked at this and tested some simple cases, and it seemed like a good way to save time. eg just bind your query against your repository from the UI and job done.
However, after using it for a few weeks I found I had to write work arounds on top of work arounds. Particularly if you allow the user to edit items, or add items.
My advice based on this experience is to bind your UI to a simple ObservableCollection<T> . If you need a query to populate the collection, fire the query, then update the ObservableCollection by hand.
Sometimes it is better to keep things simple.