-
-
Notifications
You must be signed in to change notification settings - Fork 154
Description
I am attempting to use Conductor.Collection.AllActive to house multiple unique UserControls within one screen.
When binding to the Items collection of a conductor, how can I specify which VM will be used in a ContentControl?
This seems to work:
<ContentControl s:View.Model="{Binding Items[0]}" />
However, when I close the screen, I get this error:
System.Windows.Data Error: 17 : Cannot get 'Item[]' value (type 'IScreen') from 'Items' (type 'BindableCollection`1'). BindingExpression:Path=Items[0]; DataItem='MainViewModel' (HashCode=48883615); target element is 'ContentControl' (Name=''); target property is 'Model' (type 'Object') ArgumentOutOfRangeException:'System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index'
My assessment from the error is that the VM is being deleted before the View, and it's trying to directly access an array element that doesn't exist any more. I don't get a crash, just an error in the console.
My main view is a UserControl split into sections which each house its own UserControl. I want to be able to specify which Item from the Conductor's Items collection each UserControl uses. Is there a better/safer way than accessing the Items collection at a specific element?