Problem with Silverlight Datagrid

I have a nested datagrid in a xaml file, the parent datagrid loads the vendor information and the details loads the documents for that vendor in a datagrid. Everything is working fine until I click in the child datagrid and then go to the combobox and choose another vendor. When the new vendor is loaded nothing shows in the datagrid but the itemsource shows the info is there. Know if I click on the child cell and then click back on the parent cell everything works fine.

I need to either select a cell programmatically from the parent datagrid to change the focus back on that, or fix the problem with the datagrid not showing up
wreavesAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

wreavesAuthor Commented:

XAML 
 
<UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"  x:Class="ITAccountReport.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="25"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="25"/>
            <ColumnDefinition Width="380"/>
            <ColumnDefinition Width="260"/>
            <ColumnDefinition Width="260"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="25"/>
        </Grid.ColumnDefinitions>
        <Grid.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#3E5f8a" Offset="0.259"/>
                <GradientStop Color="#FFFFFFFF" Offset="1"/>
            </LinearGradientBrush>
        </Grid.Background>
        <TextBlock x:Name="txtVendorName" HorizontalAlignment="Left"  Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="Vendor Name" Width="Auto" Foreground="White" Margin="0,0,0,0"/>
        <ComboBox  x:Name="cbVendorName"  HorizontalAlignment="Left" Margin="80,0,0,0" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Width="300" />
        <TextBlock Grid.Row="0" Grid.Column="2" HorizontalAlignment="left" x:Name="txtSelectStartDate" Foreground="White"  Text="Select Start Date"/>
        <basics:DatePicker Grid.Row="0" HorizontalAlignment="Left" Margin="100,0,0,0" Grid.Column="2" x:Name="dtStartDate" Width="150" />
        <TextBlock Grid.Row="0" Grid.Column="3" HorizontalAlignment="Left"  x:Name="txtSelectEndDate" Text="Select End Date" Foreground="White" />
        <basics:DatePicker Grid.Row="0" HorizontalAlignment="Left" Margin="100,0,0,0"  Grid.Column="3" x:Name="dtEndDate" Width="150"  />
        <Button x:Name="Search" Content="Search" HorizontalAlignment="Left"  Grid.Column="4" Grid.ColumnSpan="2"/>
        <data:DataGrid x:Name="FolderDatagrid"      AutoGenerateColumns="False" IsReadOnly="True" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="4">
            <data:DataGrid.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="white" Offset="0.259"/>
                    <GradientStop Color="#C1C1C1" Offset="1"/>
                </LinearGradientBrush>
            </data:DataGrid.Background>
            <data:DataGrid.Columns>
                <data:DataGridTextColumn Header="Folder Number" Binding="{Binding FLD_RSN}" Visibility="Collapsed" />
                <data:DataGridTextColumn Header="Vendor ID" Width="100" Binding="{Binding A_VENDOR_ID}" />
                <data:DataGridTextColumn Header="Vendor Name" Width="200" Binding="{Binding A_VENDOR_NAME}" />
                <data:DataGridTextColumn Header="Vendor Desc" Width="500" Binding="{Binding A_VDR_DESC}" />
            </data:DataGrid.Columns>
            <data:DataGrid.RowDetailsTemplate>
                <DataTemplate>
                    <data:DataGrid x:Name="DocumentDataGrid" AreRowDetailsFrozen="True"  RowDetailsVisibilityMode="Collapsed"  HorizontalGridLinesBrush="Black" GridLinesVisibility="All"  BorderBrush="Black" BorderThickness="2"  AutoGenerateColumns="FALSE" ItemsSource="{Binding CAWDOCUMENT}"   Height="419" Margin="0,-5,0,0" IsReadOnly="True"  VerticalAlignment="Bottom" >
                       
                        <data:DataGrid.Background>
                            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                <GradientStop Color="#C1C1C1" Offset="0.259"/>
                                <GradientStop Color="#FFFFFFFF" Offset="1"/>
                            </LinearGradientBrush>
                        </data:DataGrid.Background>
                        <data:DataGrid.Columns>
                            <data:DataGridTextColumn Header="DOC_RSN" Binding="{Binding DOC_RSN}" Visibility="Collapsed" />
                            <data:DataGridTextColumn Header="DOC TYPE" Width="100" Binding="{Binding DOC_TYPE}" />
                            <data:DataGridTextColumn Header="DOC Description" Width="200" Binding="{Binding DOC_DESC}" />
                            <data:DataGridTextColumn Header="Check Number" Width="100" Binding="{Binding A_CHECK_NO}" />
                            <data:DataGridTextColumn Header="Amount" Width="100" Binding="{Binding A_AMOUNT}"/>
                            <data:DataGridTextColumn Header="Check Date" Width="600" Binding="{Binding A_CHECK_DATE}"/>
                            <data:DataGridTemplateColumn Header="Image" Width="100">
                                <data:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <HyperlinkButton  Content="Image" TargetName="Image" Foreground="White"  NavigateUri="{Binding IMAGE_FILE}">
                                            <HyperlinkButton.Background >
                                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                    <GradientStop Color="#3E5f8a" Offset="0.259"/>
                                                    <GradientStop Color="#FFFFFFFF" Offset="1"/>
                                                </LinearGradientBrush>
                                            </HyperlinkButton.Background>
                                        </HyperlinkButton>
                                    </DataTemplate>
                                </data:DataGridTemplateColumn.CellTemplate>
                            </data:DataGridTemplateColumn>
                        </data:DataGrid.Columns>
                    </data:DataGrid>
                </DataTemplate>
            </data:DataGrid.RowDetailsTemplate>
        </data:DataGrid>
    </Grid>
   
</UserControl>
 
Code Behind
Imports System.Windows.Data
Partial Public Class Page
    Inherits UserControl
    Dim ClientHost As ServiceReference1.Service1Client = New ServiceReference1.Service1Client
    Dim dg As New DataGrid
    Dim folderrow As ServiceReference1.CAWFOLDER
    Public Sub New()
        InitializeComponent()
        AddHandler ClientHost.GetVendorCompleted, AddressOf ClientHost_GetVendorCompleted
        ClientHost.GetVendorAsync()
    End Sub
    Private Sub ClientHost_GetVendorCompleted(ByVal sender As Object, ByVal e As ServiceReference1.GetVendorCompletedEventArgs)
        If Not e.Result Is Nothing Then
            For Each item In e.Result
                cbVendorName.Items.Add(item)
            Next
        End If
    End Sub
    Private Sub cbVendorName_SelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles cbVendorName.SelectionChanged
        AddHandler ClientHost.GetVendorInfoCompleted, AddressOf ClientHost_GetVendorInfoCompleted
        ClientHost.GetVendorInfoAsync(cbVendorName.SelectedItem.ToString)
    End Sub
    Private Sub ClientHost_GetVendorInfoCompleted(ByVal sender As Object, ByVal e As ServiceReference1.GetVendorInfoCompletedEventArgs)
 
 
        If Not e.Result Is Nothing Then
            FolderDatagrid.ItemsSource = e.Result
        End If
    End Sub
 
   
    Private Sub FolderDatagrid_LoadingRowDetails(ByVal sender As Object, ByVal e As System.Windows.Controls.DataGridRowDetailsEventArgs) Handles FolderDatagrid.LoadingRowDetails
        FolderDatagrid.SelectedIndex = e.Row.GetIndex
        AddHandler ClientHost.GetVendorDocsCompleted, AddressOf clientHost_GetVendorDocCompleted
        Dim row As ServiceReference1.CAWFOLDER = FolderDatagrid.SelectedItem()
        folderrow = row
        If Not row Is Nothing Then
            dg = e.DetailsElement.FindName("DocumentDataGrid")
            ClientHost.GetVendorDocsAsync(row.FLD_RSN)
        End If
    End Sub
    Private Sub clientHost_GetVendorDocCompleted(ByVal sender As Object, ByVal e As ServiceReference1.GetVendorDocsCompletedEventArgs)
        If Not e.Result Is Nothing Then
            dg.ItemsSource = e.Result
        End If
    End Sub
 
   
 
End Class

Open in new window

0
wreavesAuthor Commented:
I placed the focus() at the first of  combobox selecteditem event and it worked fine.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Development

From novice to tech pro — start learning today.