Skip to content

Update Screens and Conductors page on Wiki to document ConductWith #96

@KeithSwanger

Description

@KeithSwanger

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions