Skip to content

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

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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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