reactiveui/website

feature: ReactiveWindow with other UI frameworks(such as MahApps.Metro)

LeiYangGH opened this issue · 9 comments

reactiveui:ReactiveWindow is convenient, but since it is a base class, it cannot directly work with other UI frameworks that also requires a base class, take MahApps.Metro for example, it needs the window to be
mah:MetroWindow, while reactive ui needs reactiveui:ReactiveWindow, they cannot exist at the same time.

I know reactiveui:ReactiveWindow is not the only way to enable reactiveui, and I can manually implement IViewFor myself, but the document didn't metion such conflict senarios and any ways to let them coexists?

Thanks!

ReactiveWindow is purely a convenience class and definitely not mandatory.

In terms of docs maybe we can give more explicit mention of how to make your own implementation.

It's good to have those implementation methods in docs.
How important is ReactiveWindow in ReactiveUI.Wpf?

Not needed per say. It just avoids you having to implement IViewFor yourself. Also if your window doesn't have a view model it's not needed at all.

In the wpf samples,
The only project that uses ReactiveWindow is getting-started/ReactiveDemo, and it reference the UI controls directly with names, which is not pure MVVM.

Can I conclude: in pure MVVM reactiveUI, ReactiveWindow is not necessary at all and should be avoided?

It's pure mvvm. It's called view first mvvm. There's nothing in the mvvm paradigm that prevents it.

ok. thanks. seem i made some mistake. viewmodel should't reference ui, but in the demo ui reference itself as well as viewmodel.

Mvvm view model doesn't haven't a reference to the view directly. Don't see it having any view classes in the view model?

In view first mvvm the view creates the view model.

In view model first the view is created in response to the view model. Eg through a DI system.

thanks. my concern is almost explained, rx.ui can integrate with mahapps.metro without loosing most of the features. can be closed.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.