How to host prism/s from within a winform application?

Topics: Prism v2 - WPF 3.5
Aug 28, 2009 at 4:43 PM

We have an existing winform application and want to move forward using wpf. We will need to keep many parts of the app as winforms so a total conversion is not an option. One of the objectives I want to achieve here is where new wpf content is developed – that it will only exist in a window that contains pure wpf (i.e. not a mixture of winform usercontrols and wpf usercontrols). This is due to repaint / scale layout issues.

Currently when a user clicks a toolbar button to see a report – a modeless window is created (which contains user controls). If the user was to click the same toolbar item again – a second instance of the view would be created in a second window. Both views share underlying model data (we use mvc). This requirement must be kept moving forward...

If we were to use prism how could we go about doing this – I see two possibilities...

  1. Create a shell per toolbar item click and thus ‘share’ the unity container across the two so that sharing of model data / services could occur.
  2. Have one shell which is ‘hidden’ and on each toolbar click invoke a ‘popped out’ region hosting a module – if this is even possible?


Which way seems ‘best’? Or is there another way of doing this? Any feedback would greatly be appreciated.