This question is locked. New answers and comments are not allowed.
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<int, int> selectedTabs = new Dictionary<int, int>(); | |
| 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 | |
| } | |
| } | |
