This is a migrated thread and some comments may be shown as answers.

Unable to lazy load child grids embedded within a tab strip

0 Answers 96 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Manny
Top achievements
Rank 1
Manny asked on 29 Jul 2011, 12:55 AM
Hi,

I am trying to lazy load a child grid that is embedded with a tab strip within the grid. I am unable to do it as I am unable to access the child grid object. I am also unable to do it using WPF binding. Please help as I have deadlines looming. Thanks.
Here is the xaml code.

Thanks.

<UserControl x:Class="CoE.VCS.WPF.Violations.Controls.SupervisorSearch"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             xmlns:viewModels="clr-namespace:CoE.VCS.WPF.ViewModels"
             mc:Ignorable="d"
             SizeChanged="UserControl_SizeChanged" Loaded="UserControl_Loaded"
             d:DesignWidth="1200" d:DesignHeight="500">

    <UserControl.DataContext>
        <viewModels:SupervisorSearchViewModel />
    </UserControl.DataContext>
   
    <UserControl.Resources>
        <DataTemplate x:Key="TypeItemTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Description}"/>
            </StackPanel>
        </DataTemplate>

        <DataTemplate x:Key="OfficerItemTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding OperatorId}"/>
                <TextBlock Text="{Binding OperatorLastName}"/>
                <TextBlock Text=", "/>
                <TextBlock Text="{Binding OperatorFirstName}"/>
            </StackPanel>
        </DataTemplate>
       
        <DataTemplate x:Key="SiteItemTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding SiteId}"/>
                <TextBlock Text="{Binding LocationDescription}"/>
            </StackPanel>
        </DataTemplate>

        <DataTemplate x:Key="ReviewerItemTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding UserName}"/>
            </StackPanel>
        </DataTemplate>
    </UserControl.Resources>

    <Grid x:Name="LayoutGrid">    
        <Grid.RowDefinitions >
            <RowDefinition Height="25" />
            <RowDefinition Height="180" />
            <RowDefinition Height="*" />
            <RowDefinition Height="55" />
        </Grid.RowDefinitions>

        <TextBlock Grid.Row="0" HorizontalAlignment="Center" Style="{StaticResource ImportantTextBlock}">Search for Violation</TextBlock>

        <Grid Grid.Column="0" Grid.Row="1" Name="SearchCriteria">
            <Grid.ColumnDefinitions >
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="350"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="200"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions >
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
           
            <Label Grid.Column="0" Grid.Row="0">Ticket Number:</Label>
            <Label Grid.Column="0" Grid.Row="1">License Plate:</Label>
            <Label Grid.Column="0" Grid.Row="2">First Name:</Label>
            <Label Grid.Column="0" Grid.Row="3">Last/Company Name:</Label>

            <TextBox Grid.Column="1" Grid.Row="0" Name="textBoxTicketNumber" ToolTip="Enter Ticket Number" HorizontalAlignment="Left" Width="100" />
            <TextBox Grid.Column="1" Grid.Row="1" Name="textBoxLicensePlate"  ToolTip="Enter License Plate" HorizontalAlignment="Left" Width="100" CharacterCasing="Upper" />
            <TextBox Grid.Column="1" Grid.Row="2" Name="textBoxFirstName" ToolTip="Enter First Name" />
            <TextBox Grid.Column="1" Grid.Row="3" Name="textBoxLastName" ToolTip="Enter Last Name or Company Name" />

            <Label Grid.Column="2" Grid.Row="0">Reviewer:</Label>
            <Label Grid.Column="2" Grid.Row="1">Site:</Label>
            <Label Grid.Column="2" Grid.Row="2">Officer:</Label>
            <Label Grid.Column="2" Grid.Row="3">Type:</Label>
           
            <telerik:RadComboBox Grid.Column="3" Grid.Row="0" Name="ReviewerComboBox" ItemTemplate="{StaticResource ReviewerItemTemplate}" />
            <telerik:RadComboBox Grid.Column="3" Grid.Row="1" Name="SiteComboBox" ItemTemplate="{StaticResource SiteItemTemplate}" />
            <telerik:RadComboBox Grid.Column="3" Grid.Row="2" Name="OfficerComboBox" ItemTemplate="{StaticResource OfficerItemTemplate}" />
            <telerik:RadComboBox Grid.Column="3" Grid.Row="3" Name="TypeComboBox" ItemTemplate="{StaticResource TypeItemTemplate}" />

            <Label Grid.Column="4" Grid.Row="0">Start Date:</Label>
            <Label Grid.Column="4" Grid.Row="1">End Date:</Label>

            <telerik:RadDateTimePicker Grid.Column="5" Grid.Row="0" Name="ViolationDateStart" InputMode="DatePicker" Margin="4"/>
            <telerik:RadDateTimePicker Grid.Column="5" Grid.Row="1" Name="ViolationDateEnd" InputMode="DatePicker" Margin="4"/>

            <StackPanel Grid.Column="1" Grid.Row="4" Name="SearchCommands" Grid.ColumnSpan="2" HorizontalAlignment="Left">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="160" />
                        <ColumnDefinition Width="160" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="50"/>
                    </Grid.RowDefinitions>
                    <telerik:RadButton Name="buttonSearch" Margin="6,6,15,6" Click="ButtonSearchClick" IsDefault="True" >
                        <TextBlock TextWrapping="Wrap" TextAlignment="Center">Search for Violations</TextBlock>
                    </telerik:RadButton>
                    <telerik:RadButton Name="buttonClear" Margin="151,6,28,6" Click="ButtonClearClick" Grid.ColumnSpan="2">
                        <TextBlock TextWrapping="Wrap" TextAlignment="Center">Clear Search</TextBlock>
                    </telerik:RadButton>
                </Grid>
            </StackPanel>
        </Grid>

        <telerik:RadGridView Grid.Column="0" Grid.Row="2"
                             x:Name="SearchResultsGrid"
                             RowLoaded="SearchResultsGrid_RowLoaded"
                             ScrollViewer.VerticalScrollBarVisibility ="Visible" 
                             RowIndicatorVisibility="Collapsed"
                             AutoGenerateColumns="False"
                             CanUserDeleteRows="False"
                             CanUserFreezeColumns="False"
                             CanUserInsertRows="False"
                             CanUserReorderColumns="False"
                             CanUserResizeColumns="False"
                             SelectionMode="Multiple" 
                             ShowGroupPanel="True"
                             ShowColumnHeaders="True"
                             SnapsToDevicePixels="True"
                             EnableRowVirtualization="True"
                             ItemsSource="{Binding Path=Results}"
                             Focusable="True"
                             IsReadOnly="True"
                             IsTabStop="False" RowDetailsVisibilityChanged="SearchResultsGrid_RowDetailsVisibilityChanged" RowIsExpandedChanged="SearchResultsGrid_RowIsExpandedChanged">
           
            <telerik:RadGridView.Columns>
                <telerik:GridViewToggleRowDetailsColumn />
                <telerik:GridViewDataColumn x:Name="TicketNumber" DataMemberBinding="{Binding Path=TicketNumber}" Header="Ticket Number"  Width="92" IsReadOnly="True" IsFilterable="False" />
                <telerik:GridViewDataColumn x:Name="FirstName"  DataMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="100" IsReadOnly="True" />
                <telerik:GridViewDataColumn x:Name="LastName"  DataMemberBinding="{Binding Path=LastName}" Header="Last/Company Name" Width="150" IsReadOnly="True" />               
                <telerik:GridViewDataColumn x:Name="ViolationType" DataMemberBinding="{Binding Path=ViolationType}" Header="Violation Type" Width="125"  IsReadOnly="True" />
                <telerik:GridViewDataColumn x:Name="ViolationDateTime" DataMemberBinding="{Binding Path=ViolationDateTime}" DataFormatString="{} {0:dd-MMM-yyyy HH:mm}" Header="Violation Date/Time"  Width="145" IsReadOnly="True" />
                <telerik:GridViewDataColumn x:Name="State" DataMemberBinding="{Binding Path=ViolationState}" Header="Violation State" Width="120"  IsReadOnly="True" />
                <telerik:GridViewDataColumn x:Name="Officer" DataMemberBinding="{Binding Path=Officer}" Header="Officer" Width="110"  IsReadOnly="True" />
                <telerik:GridViewDataColumn x:Name="Site" DataMemberBinding="{Binding Path=Site}" Header="Site" Width="190"  IsReadOnly="True" />
            </telerik:RadGridView.Columns>
            <telerik:RadGridView.RowDetailsTemplate>
                <DataTemplate>
                    <telerik:RadTabControl BackgroundVisibility="Collapsed" x:Name="RadTabMain" Margin="8" VerticalAlignment="Center" Background="Transparent">
                        <telerik:RadTabItem Header="Details" Margin="0,0,0,0" Height="24">
                            <telerik:RadGridView x:Name="DetailsGrid" ItemsSource="{Binding Path=Details}" Height="300" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False"
               CanUserFreezeColumns="False" BorderThickness="0" CanUserResizeColumns="False"
               ShowGroupPanel="False" BorderBrush="{x:Null}"
               Margin="0" Width="744">
                                <telerik:RadGridView.Columns>
                                    <telerik:GridViewSelectColumn IsGroupable="False" />
                                    <telerik:GridViewDataColumn x:Name="TicketNumber" DataMemberBinding="{Binding Path=TicketNumber}" Header="Ticket Number"  Width="150" IsReadOnly="True" IsFilterable="False" />
                                    <telerik:GridViewDataColumn x:Name="ViolationType" DataMemberBinding="{Binding Path=ViolationType}" Header="Violation Type" Width="200"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="ViolationDateTime" DataMemberBinding="{Binding Path=ViolationDateTime}" DataFormatString="{} {0:dd-MMM-yyyy HH:mm}" Header="Violation Date/Time"  Width="150" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="ViolationStatus" DataMemberBinding="{Binding Path=ViolationStatus}" Header="Violation Status" Width="200"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="SiteId" DataMemberBinding="{Binding Path=SiteId}" Header="Site Id" Width="100"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="FirstName"  DataMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="200" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="LastName"  DataMemberBinding="{Binding Path=LastName}" Header="Last/Company Name" Width="300" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="SiteLocation"  DataMemberBinding="{Binding Path=SiteLocation}" Header="Site Location" Width="300" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="SpeedLimit"  DataMemberBinding="{Binding Path=SpeedLimit}" Header="Speed Limit" Width="80" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="SpeedThreshold"  DataMemberBinding="{Binding Path=SpeedThreshold}" Header="Speed Threshold" Width="80" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="CapturedSpeed"  DataMemberBinding="{Binding Path=CapturedSpeed}" Header="Captured Speed" Width="80" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="FineAmount"  DataMemberBinding="{Binding Path=FineAmount}" Header="Fine Amount" Width="80" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="CourtDate" DataMemberBinding="{Binding Path=CourtDate}" DataFormatString="{} {0:dd-MMM-yyyy HH:mm}" Header="Court Date" Width="80" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="IssueDate" DataMemberBinding="{Binding Path=IssueDate}" DataFormatString="{} {0:dd-MMM-yyyy HH:mm}" Header="Issue Date" Width="80" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="ModifiedDateTime" DataMemberBinding="{Binding Path=ModifiedDateTime}" DataFormatString="{} {0:dd-MMM-yyyy HH:mm}" Header="Modified Date/Time" Width="80" IsReadOnly="True" />
                                </telerik:RadGridView.Columns>
                            </telerik:RadGridView>
                        </telerik:RadTabItem>
                        <telerik:RadTabItem Header="History" Height="24">
                            <telerik:RadGridView x:Name="ReviewGrid" Height="300" ItemsSource="{Binding Path=Reviews}" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False"
               CanUserFreezeColumns="False" BorderThickness="0" CanUserResizeColumns="False"
               ShowGroupPanel="False" BorderBrush="{x:Null}"
               Margin="0" Width="744">
                                <telerik:RadGridView.Columns>
                                    <telerik:GridViewSelectColumn IsGroupable="False" />
                                    <telerik:GridViewDataColumn x:Name="ReviewResult" DataMemberBinding="{Binding Path=ReviewResult}" Header="Review Result"  Width="80" IsReadOnly="True" IsFilterable="False" />
                                    <telerik:GridViewDataColumn x:Name="ViolationStatusReviewTime" DataMemberBinding="{Binding Path=ViolationStatus}" Header="Violation Status" Width="200"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="ReviewedBy" DataMemberBinding="{Binding Path=ReviewedBy}" Header="Reviewed By" Width="200"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="ReviewedDateTime" DataMemberBinding="{Binding Path=ReviewedDateTime}" DataFormatString="{} {0:dd-MMM-yyyy HH:mm}" Header="Reviewed Date/Time" Width="80" IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="PlateNumber" DataMemberBinding="{Binding Path=PlateNumber}" Header="Plate Number" Width="90"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="Province" DataMemberBinding="{Binding Path=Province}" Header="Province" Width="70"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="RejectionReasonCategory" DataMemberBinding="{Binding Path=RejectionReasonCategory}" Header="Rejection Reason Category" Width="120"  IsReadOnly="True" />
                                    <telerik:GridViewDataColumn x:Name="RejectionReason" DataMemberBinding="{Binding Path=RejectionReason}" Header="Rejection Reason" Width="120"  IsReadOnly="True" />
                                </telerik:RadGridView.Columns>
                            </telerik:RadGridView>
                        </telerik:RadTabItem>
                        <telerik:RadTabItem Header="Comments" Height="24">

                        </telerik:RadTabItem>
                        <telerik:RadTabItem Header="Actions" Height="24">

                        </telerik:RadTabItem>
                    </telerik:RadTabControl>
                </DataTemplate>
            </telerik:RadGridView.RowDetailsTemplate>
        </telerik:RadGridView>

        <StackPanel Grid.Column="0" Grid.Row="3" Name="ResultCommands">
            <Grid>
                <Grid.ColumnDefinitions >
                    <ColumnDefinition Width="146"/>
                    <ColumnDefinition Width="146"/>
                    <ColumnDefinition Width="146"/>
                    <ColumnDefinition Width="146"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="2*"/>                   
                </Grid.ColumnDefinitions>
            <Grid.RowDefinitions >
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <telerik:RadButton Grid.Column="0"  Margin="0, 6, 0, 6" Width="130" HorizontalAlignment="Left" Name="buttonView" Click="ButtonViewClick">
                <TextBlock TextWrapping="Wrap" TextAlignment="Center">View Selected Violations</TextBlock>
            </telerik:RadButton>
                <telerik:RadButton Grid.Column="1"  Margin="0, 6, 0, 6" Width="130" HorizontalAlignment="Left" Name="buttonCourtPackage" Click="ButtonCourtpackagesClick">
                    <TextBlock TextWrapping="Wrap" TextAlignment="Center">Prepare Court Packages</TextBlock>
                </telerik:RadButton>
                <telerik:RadButton Grid.Column="2"  Margin="0, 6, 0, 6" Width="130" HorizontalAlignment="Left" Name="buttonConvert" Click="ButtonConvertClick">
                    <TextBlock TextWrapping="Wrap" TextAlignment="Center">Convert</TextBlock>
                </telerik:RadButton>
                <telerik:RadButton Grid.Column="3"  Margin="0, 6, 0, 6" Width="130" HorizontalAlignment="Left" Name="buttonServeTicket" Click="ButtonServeClick">
                    <TextBlock TextWrapping="Wrap" TextAlignment="Center">Ticket Served</TextBlock>
                </telerik:RadButton>
                <TextBlock Grid.Column="4"  HorizontalAlignment="Right"  Height="21" Name="NumberOfViolationsFound" >Number of Violations found:</TextBlock>
                <TextBlock Grid.Column="5"  Name="NumberOfViolationsFoundTextBlock" Style="{StaticResource BoldTextBlock}" Margin="25, 6, 0, 6" HorizontalAlignment="Left"  Height="21"></TextBlock>
            </Grid>
        </StackPanel>
      
    </Grid>
</UserControl >

No answers yet. Maybe you can help?

Tags
GridView
Asked by
Manny
Top achievements
Rank 1
Share this question
or