mutex
mutex

Reputation: 7728

Caliburn.Micro: How to change a Conductor<IScreen> to Conductor<IScreen>.Collection.OneActive

I have a main viewmodel which is a Conductor<IScreen> in application and it seems to work fine. The corresponding view has a ContentControl called ActiveItem and this displays the ActiveItem which I can activate using ActivateItem on the viewmodel.

But I want to change this to a Conductor<IScreen>.Collection.OneActive. I thought at the basic level this would be a simple case of changing my viewmodel to:

public class MyViewModel : Conductor<IScreen>.Collection.OneActive

But this seems to break elements in the view (they just don't display) Can anybody explain at a high level if there are other steps I may need to test this? Or what the effect of changing to the Collection implementation fo the Conductor has that may break other UI elements in my view?

Upvotes: 0

Views: 826

Answers (1)

mutex
mutex

Reputation: 7728

The answer was fairly simple in the end:

The main thing that the collection implementations of the conductors add is an Items property. It turns out there was a UI element in my view also called Items, so I guess Caliburn.Micro was automatically binding this to the Items element in the view causing odd things to happen. Renaming the UI element resolved this.

Upvotes: 3

Related Questions