Search code examples
expression-blend

Why selected item in ListBox throws error in expression blend?


I am learning expression blend using the following link http://visitmix.com/labs/rosetta/EyesOfBlend/DataTemplates/ It is a very good step by step instruction on using expression blend. I was able to do all the steps successfully and I was able to run the program and got the final result.

Right after step (9), before running the project, when I checked the designer, the designer did not show the image in the big image control I have added in step (9). I knew why, since the selected index of the ListBox was -1, so I changed the selectedindex to 0, now I was able to see the image. But when I compiled the code I get the following error

"Specified argument was out of the range of valid values. Parameter name:SelectedIndex"

XAML is

<Grid x:Name="LayoutRoot" Background="White" DataContext="{Binding Source={StaticResource SampleDataSource}}">
    <Grid x:Name="itemGrid" DataContext="{Binding SelectedItem, ElementName=listBox}">
        <Image Margin="185,56,153,160" Stretch="Fill" Source="{Binding Name}"/>
    </Grid>
    <ListBox x:Name="listBox" SelectedIndex="0" Margin="8,0,0,8" ItemsSource="{Binding Collection}" ItemTemplate="{StaticResource ItemTemplate1}" ItemsPanel="{StaticResource ItemsPanelTemplate1}" Height="101" VerticalAlignment="Bottom"/>
</Grid>

If I remove the selected index, all compile good. Could someone explain why it showed first time after compiling, it stopped working?

Thanks


Solution

  • You are almost always better binding to the SelectedItem than the SelectedIndex. If the Item is null, the binding should fail gracefully.