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

[Solved] GridView/Firstlook Example Issue

1 Answer 154 Views
GridView
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
brianmic
Top achievements
Rank 1
brianmic asked on 30 Aug 2009, 03:54 AM
Hi All, I am trying to replicate this example using different data which is also static and in XML format. My problem is that I am hitting an OutOfMemory exception after I step through the code, and when the control goes to render. I have hit a brick wall on this one and need another pair of eyes on it. I am new to these controls and need to have it working by monday to take it to the next step and lod it with search result data. I can't even get this working. Can someone take a look at the XAML and the codebehind and tell me if anything obvious stands out? Thanks in advance. - Brian

<UserControl x:Class="SL.XAML.SiteDirectoryClient.DirectoryListing"                
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
            xmlns:controls="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls" 
            xmlns:grid="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView" 
            xmlns:gridView="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView" 
            xmlns:navigation="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation" 
            xmlns:chart="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Charting" 
            Loaded="SiteData_Loaded">  
 
    <Grid> 
        <Grid.Resources> 
            <!-- RadTabControl TopTemplate--> 
            <ControlTemplate x:Key="TabControlTopTemplateExamples" TargetType="navigation:RadTabControl">  
                <Grid> 
                    <VisualStateManager.VisualStateGroups> 
                        <VisualStateGroup x:Name="CommonStates">  
                            <VisualState x:Name="Disabled">  
                                <Storyboard /> 
                            </VisualState> 
                            <VisualState x:Name="Normal" /> 
                        </VisualStateGroup> 
                    </VisualStateManager.VisualStateGroups> 
                    <Grid.RowDefinitions> 
                        <RowDefinition Height="auto" /> 
                        <RowDefinition Height="*" /> 
                    </Grid.RowDefinitions> 
 
                    <Border BorderBrush="{TemplateBinding BorderBrush}" 
                    BorderThickness="{TemplateBinding BorderThickness}" 
                    Background="{TemplateBinding Background}" Margin="0" Grid.Row="1">  
                        <ContentPresenter x:Name="ContentElement" 
                        Content="{TemplateBinding SelectedContent}" 
                        ContentTemplate="{TemplateBinding SelectedContentTemplate}" /> 
                    </Border> 
                    <Grid> 
 
                        <Rectangle MinHeight="{TemplateBinding MinHeight}" 
                        Visibility="{TemplateBinding BackgroundVisibility}" > 
                            <Rectangle.Fill> 
                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">  
                                    <GradientStop Color="#FFCECECE" Offset="0" /> 
                                    <GradientStop Color="#FFF6F6F6" Offset="1" /> 
                                </LinearGradientBrush> 
                            </Rectangle.Fill> 
                        </Rectangle> 
                        <ItemsPresenter Margin="2 4 0 0" x:Name="ItemsPresenterElement" /> 
                    </Grid> 
 
                    <Rectangle Visibility="Collapsed"   
                    Grid.RowSpan="2" x:Name="DisableVisual" /> 
                </Grid> 
            </ControlTemplate> 
            <Style TargetType="navigation:RadTabControl"  x:Key="RadTabControlStyle">  
                <Setter Property="MinWidth" Value="5" /> 
                <Setter Property="MinHeight" Value="26" /> 
                <Setter Property="HorizontalContentAlignment" Value="Center" /> 
                <Setter Property="VerticalContentAlignment" Value="Center" /> 
                <Setter Property="IsEnabled" Value="True" /> 
                <Setter Property="IsTabStop" Value="true" /> 
                <Setter Property="BorderThickness" Value="1" /> 
                <Setter Property="Foreground" Value="Black" /> 
                <Setter Property="TopTemplate" Value="{StaticResource TabControlTopTemplateExamples}" /> 
            </Style> 
 
        </Grid.Resources> 
        <grid:RadGridView x:Name="RadGridView1" IsReadOnly="True" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False"  ColumnsWidthMode="Fill" controls:StyleManager.Theme="Office_Black" CanUserFreezeColumns="False">  
            <grid:RadGridView.Columns>                  
                <grid:GridViewDataColumn HeaderText="Title" DataMemberPath="Title" /> 
                <grid:GridViewDataColumn HeaderText="Description" DataMemberPath="Description" /> 
                <grid:GridViewDataColumn HeaderText="SiteType" DataMemberPath="SiteType" /> 
                <grid:GridViewDataColumn HeaderText="URL" DataMemberPath="URL" />              
            </grid:RadGridView.Columns> 
            <grid:RadGridView.HierarchyChildTemplate> 
                <DataTemplate> 
                    <StackPanel Background="#FF525252">  
                        <StackPanel.Resources> 
                            <LinearGradientBrush  x:Key="OfficeBlackBackGround" EndPoint="0.5,1" StartPoint="0.5,0">  
                                <GradientStop Color="#FF343639" Offset="1"/>  
                                <GradientStop Color="#FF373737" Offset="0"/>  
                                <GradientStop Color="#FF3A3B3D" Offset="0.15"/>  
                            </LinearGradientBrush> 
                            <LinearGradientBrush x:Key="OfficeBlackFrame" EndPoint="0.491356224416577,0.974451988955925" StartPoint="0.777113682471078,-0.027352265088688">  
                                <GradientStop Color="#FF7D7D7D" Offset="0.032501"/>  
                                <GradientStop Color="#FF4D4D4D" Offset="0.036112000000000033"/>  
                                <GradientStop Color="#FF656565" Offset="0.065002"/>  
                                <GradientStop Color="#FF454545" Offset="0.068613000000000035"/>  
                                <GradientStop Color="#FF353535" Offset="0.72841"/>  
                                <GradientStop Color="#FF050505" Offset="0.987361"/>  
                                <GradientStop Color="#FF9F9F9F" Offset="0.54500001668930054"/>  
                                <GradientStop Color="#FF454545" Offset="0.381"/>  
                                <GradientStop Color="#FF1C1C1C" Offset="0.66"/>  
                            </LinearGradientBrush> 
                            <LinearGradientBrush x:Key="GridViewBackground" EndPoint="0.5,1" StartPoint="0.5,0">  
                                <GradientStop Color="#FF474747" Offset="1"/>  
                                <GradientStop Color="#FF242424" Offset="0"/>  
                                <GradientStop Color="#FF3F3F3F" Offset="0.15"/>  
                                <GradientStop Color="#FF121212" Offset="0.152"/>  
                            </LinearGradientBrush> 
                        </StackPanel.Resources> 
                        <navigation:RadTabControl SizeChanged="RadTabControl1_SizeChanged" Style="{StaticResource RadTabControlStyle}" BorderBrush="#FFF6F6F6" BorderThickness="0 1 0 0" x:Name="RadTabControl1" Margin="30,30,30,30" controls:StyleManager.Theme="Office_Black" > 
                            <navigation:RadTabItem Header="Details" DataContext="{Binding MasterRecord.Data}" Margin="20,0,0,0" Height="24" FontWeight="Bold" FontSize="11" Foreground="Black">  
                                <Border BorderBrush="#FF000000" BorderThickness="1" Margin="0,0,0,0">  
                                    <Grid Background="{StaticResource GridViewBackground}" Width="Auto" HorizontalAlignment="Stretch">  
                                        <Grid.RowDefinitions> 
                                            <RowDefinition /> 
                                            <RowDefinition /> 
                                            <RowDefinition /> 
                                            <RowDefinition /> 
                                            <RowDefinition /> 
                                            <RowDefinition /> 
                                            <RowDefinition /> 
                                            <RowDefinition  Height="16"/>  
                                        </Grid.RowDefinitions> 
                                        <Grid.ColumnDefinitions> 
                                            <ColumnDefinition Width="Auto" /> 
                                            <ColumnDefinition Width="Auto" /> 
                                            <ColumnDefinition Width="Auto" /> 
                                        </Grid.ColumnDefinitions> 
 
                                        <Border Grid.Column="0" Grid.RowSpan="5" Grid.Row="1" BorderBrush="#0C000000" BorderThickness="1,1,1,1" CornerRadius="12,12,12,12" HorizontalAlignment="Left" Margin="22,26,0,16" Width="100" Height="100" VerticalAlignment="Center">  
                                            <Border BorderBrush="#B2000000" BorderThickness="1,1,1,1" CornerRadius="7,7,7,7">  
                                                <Border BorderThickness="1,1,1,1" CornerRadius="6,6,6,6">  
                                                    <Border.BorderBrush> 
                                                        <LinearGradientBrush EndPoint="0.933220924036204,0.903735795235198" StartPoint="0.0687608619440813,0.315483972696259">  
                                                            <GradientStop Color="#FFDEDEDE" Offset="1"/>  
                                                            <GradientStop Color="#FFFFFFFF" Offset="0.35294289873343759"/>  
                                                        </LinearGradientBrush> 
                                                    </Border.BorderBrush> 
                                                    <Border BorderThickness="7,7,7,7" CornerRadius="2,2,2,2" BorderBrush="{StaticResource OfficeBlackFrame}">  
                                                        <Border Margin="-1,-1,-1,-1" BorderBrush="#FFFFFFFF" BorderThickness="1,1,1,1" CornerRadius="2,2,2,2">  
                                                            <Border BorderThickness="1,1,1,1" CornerRadius="1,1,1,1" Background="#FFFFFFFF">  
                                                                <Border.BorderBrush> 
                                                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">  
                                                                        <GradientStop Color="#FF2F2F2F" Offset="1"/>  
                                                                        <GradientStop Color="#FF515151" Offset="0.008"/>  
                                                                    </LinearGradientBrush> 
                                                                </Border.BorderBrush> 
                                                                <Image  Source="" Stretch="Fill" HorizontalAlignment="Left" VerticalAlignment="Top" Height="96" Width="96"/>  
                                                            </Border> 
                                                        </Border> 
                                                    </Border> 
                                                </Border> 
                                            </Border> 
                                        </Border> 
                                        <TextBlock Text="Primary Site Owner: " Margin="48,26,0,0" FontWeight="Bold" Grid.Row="1" Grid.Column="1"  Foreground="White"/>  
                                        <TextBlock Text="{Binding Title}" Margin="48,26,0,0" Grid.Row="1" Grid.Column="2"  Foreground="White"/>  
                                        <TextBlock Text="Title: " Margin="48,26,0,0" FontWeight="Bold" Grid.Row="2" Grid.Column="1"  Foreground="White"/>  
                                        <TextBlock Text="{Binding Title}" Margin="48,26,0,0" Grid.Row="2" Grid.Column="2"  Foreground="White"/>  
                                        <TextBlock Text="Description: " Margin="48,0,0,0" FontWeight="Bold" Grid.Row="3" Grid.Column="1"  Foreground="White"/>  
                                        <TextBlock Text="{Binding Description}" Margin="48,0,0,0" Grid.Row="3" Grid.Column="2"  Foreground="White"/>  
                                        <TextBlock Text="Site Type: " Margin="48,0,0,0" FontWeight="Bold" Grid.Row="4" Grid.Column="1"  Foreground="White"/>  
                                        <TextBlock Text="{Binding SiteType}" Margin="48,0,0,0" Grid.Row="4" Grid.Column="2"  Foreground="White"/>  
                                        <TextBlock Text="URL: " Margin="48,0,0,0" FontWeight="Bold" Grid.Row="5" Grid.Column="1"  Foreground="White"/>  
                                        <TextBlock Text="{Binding URL}" Margin="48,0,0,0" Grid.Row="5" Grid.Column="2"  Foreground="White"/>                                          
                                    </Grid> 
                                </Border> 
                            </navigation:RadTabItem> 
                            <navigation:RadTabItem Header="Metadata" FontWeight="Bold" FontSize="11" Foreground="Black">  
                                <Grid Margin="0,0,0,0" Background="#FF525252" > 
                                    <gridView:GridViewDataControl CanUserReorderColumns="False" 
                                    SizeChanged="GridViewDataControl_SizeChanged"   
                                    ColumnsWidthMode="Fill"   
                                    CanUserFreezeColumns="False"   
                                    ShowGroupPanel="False"   
                                    Margin="-17,0,-17,-18"   
                                    Width="928" 
                                    Background="#FF525252">  
                                        <gridView:GridViewDataControl.HierarchyChildTemplate> 
                                            <DataTemplate> 
                                                <StackPanel Background="#FF525252">  
                                                    <Border Margin="15, 30, 15, 15">  
                                                        <gridView:GridViewDataControl CanUserReorderColumns="False" 
                                                        SizeChanged="GridViewDataControl_SizeChanged"   
                                                        CanUserFreezeColumns="False"   
                                                        ShowGroupPanel="False"   
                                                        ColumnsWidthMode="Fill" 
                                                        Width="841" 
                                                        Background="#FF525252" /> 
                                                    </Border> 
                                                </StackPanel> 
                                            </DataTemplate> 
                                        </gridView:GridViewDataControl.HierarchyChildTemplate> 
                                    </gridView:GridViewDataControl> 
                                </Grid> 
                            </navigation:RadTabItem> 
                            <!--<navigation:RadTabItem Header="Usage Chart"  FontWeight="Bold" FontSize="11" HorizontalContentAlignment="Stretch" HorizontalAlignment="Left" Margin="0,0,0,0" Foreground="Black">  
                                <Grid Margin="0,0,0,0" Background="#FF525252" > 
                                    <chart:RadChart x:Name="radChartSales" Height="250" Width="894" Loaded="radChartSales_Loaded"  HorizontalAlignment="Left"/>  
                                </Grid> 
                            </navigation:RadTabItem>--> 
                        </navigation:RadTabControl> 
                    </StackPanel> 
 
                </DataTemplate> 
            </grid:RadGridView.HierarchyChildTemplate> 
 
        </grid:RadGridView> 
    </Grid> 
</UserControl> 
 

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Net;  
using System.Windows;  
using System.Windows.Data;  
using System.Windows.Controls;  
using System.Windows.Documents;  
using System.Windows.Input;  
using System.Windows.Media;  
using System.Windows.Media.Animation;  
using System.Windows.Shapes;  
using Telerik.Windows.Controls;  
using Telerik.Windows.Data;  
using Telerik.Windows.Controls.GridView;  
 
namespace SL.XAML.SiteDirectoryClient  
{  
    public partial class DirectoryListing : UserControl  
    {  
        Dictionary<intint> selectedTabs = new Dictionary<intint>();          
        RadTabControl RadTabControl1 = new RadTabControl();          
          
         public DirectoryListing()  
        {  
            InitializeComponent();              
        }  
 
        private void RadTabControl1_SelectionChanged(object sender, RoutedEventArgs e)  
        {             
            SiteData sitedata =  
                (SiteData)  
                 (((ExpandableDataRecord)(((RecordManager)(((RadTabControl)sender).DataContext)).MasterRecord)).Data);  
            int recordID = sitedata.RecordID;  
 
            selectedTabs[recordID] = ((RadTabControl)sender).SelectedIndex;             
             
        }  
 
        void SiteData_Loaded(object sender, RoutedEventArgs e)  
        {              
                RadGridView1.ItemsSource = TestData.GetSiteData().ToList();  
 
                TableRelation relation = new TableRelation();  
                relation.FieldNames.Add(new FieldDescriptorNamePair("RecordID""RecordID"));  
 
                GridViewTableDefinition definition = new GridViewTableDefinition();  
                definition.AutoGenerateFieldDescriptors = false;  
 
                GridViewDataColumn column = new GridViewDataColumn();  
                column.DataMemberBinding = new Binding("Function");  
                column.HeaderText = "Function";  
                column.IsFilterable = true;  
                definition.FieldDescriptors.Add(column);  
 
                column = new GridViewDataColumn();  
                column.DataMemberBinding = new Binding("SubFunction");  
                column.HeaderText = "SubFunction";  
                column.IsFilterable = true;  
                definition.FieldDescriptors.Add(column);  
 
                column = new GridViewDataColumn();  
                column.DataMemberBinding = new Binding("Region");  
                column.HeaderText = "Region";  
                column.IsFilterable = true;  
                definition.FieldDescriptors.Add(column);  
 
                column = new GridViewDataColumn();  
                column.DataMemberBinding = new Binding("Country");  
                column.HeaderText = "Country";  
                column.IsFilterable = false;  
                definition.FieldDescriptors.Add(column);  
 
                column = new GridViewDataColumn();  
                column.DataMemberBinding = new Binding("BusinessUnit");  
                column.HeaderText = "Business Unit";  
                column.IsFilterable = false;  
                definition.FieldDescriptors.Add(column);  
 
                column = new GridViewDataColumn();  
                column.DataMemberBinding = new Binding("AssetAuthor");  
                column.HeaderText = "Asset Author";  
                column.IsFilterable = false;  
                definition.FieldDescriptors.Add(column);  
 
                column = new GridViewDataColumn();  
                column.DataMemberBinding = new Binding("UrlOfAuthor");  
                column.HeaderText = "Author Url";  
                column.IsFilterable = false;  
                definition.FieldDescriptors.Add(column);  
 
                definition.DataSource = TestData.GetSiteDetails();  
                definition.Relation = relation;  
 
                RadGridView1.TableDefinition.ChildTableDefinitions.Add(definition);  
                relation.FieldNames.Add(new FieldDescriptorNamePair("RecordID""RecordID"));  
 
                RadGridView1.DataLoaded += new EventHandler<EventArgs>(RadGridView1_DataLoaded);  
                     
        }  
                      
 
        void RadGridView1_DataLoaded(object sender, EventArgs e)  
        {             
                RadGridView1.DataLoaded -= new EventHandler<EventArgs>(RadGridView1_DataLoaded);  
                ((ExpandableDataRecord)RadGridView1.Records[0]).IsExpanded = true;                  
        }  
 
        private void RadTabControl1_SizeChanged(object sender, SizeChangedEventArgs e)  
        {  
            RadTabControl1 = (RadTabControl)sender;  
            int RecordID = ((SiteData)(((ExpandableDataRecord)(((RecordManager)(((RadTabControl)sender).DataContext)).MasterRecord)).Data)).RecordID;  
            RadTabControl1.SelectedIndex = selectedTabs.ContainsKey(RecordID) ? selectedTabs[RecordID] : 0;  
 
            RadTabControl1.SelectionChanged += new RoutedEventHandler(RadTabControl1_SelectionChanged);  
        }  
 
        private void GridViewDataControl_SizeChanged(object sender, SizeChangedEventArgs e)  
        {  
            ((GridViewDataControl)sender).ItemsControl.MaxHeight = 600;  
        }
        #region Asynchronous Request Complete Event Handlers  
        #endregion  
 
         
 
    }  
}  
 

1 Answer, 1 is accepted

Sort by
0
Vlad
Telerik team
answered on 31 Aug 2009, 01:12 PM
Hello Brian,

Let's continue the conversation in your other thread.

Best wishes,
Vlad
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Tags
GridView
Asked by
brianmic
Top achievements
Rank 1
Answers by
Vlad
Telerik team
Share this question
or