Hi,
I am attempting to set the best view on radmap but I am getting a type conversion error when setting the rectangle to the information layer.
I am setting the information layer item source to records within a radgrid using:
Me.informationLayer.ItemsSource = Nothing
items = New ObservableCollection(Of MapItem)
Dim Item As PendingClass = TryCast(Me.PendingGrid.SelectedItem, PendingClass)
Dim LatLon() As String
If Not Item.LatLon Is Nothing Then
LatLon = Item.LatLon.Split(",")
Me.Vehtn.Visibility = Windows.Visibility.Visible
Dim foreground As Brush = New SolidColorBrush(Colors.Yellow)
Dim background As Brush = New SolidColorBrush(Colors.Red)
Dim Vtext As New TextBlock() With { _
.Text = Item.DelRegistration, _
.Background = background, _
.Foreground = foreground _
}
Me.items.Add(New MapItem(LatLon(0), LatLon(1), background, Vtext, Item.DateOfFix))
End If
Background = New SolidColorBrush(Colors.Green)
Dim text As New TextBlock() With { _
.Text = Item.DelName, _
.Background = Background, _
.Foreground = Foreground _
}
If Not Item.DelLatLon Is Nothing Then
Me.Locbtn.Visibility = Windows.Visibility.Visible
If Me.Vehtn.Visibility = Windows.Visibility.Visible Then Me.Distancebtn.Visibility = Windows.Visibility.Visible
LatLon = Item.DelLatLon.Split(",")
Me.items.Add(New MapItem(LatLon(0), LatLon(1), Background, text, Item.DelDate))
End If
Me.informationLayer.ItemsSource = items
I then attempt to set the map best view and I get the error:
‘+ ex {"Unable to cast object of type 'System.Windows.Controls.ItemCollection' to type 'System.Collections.Generic.IEnumerable`1[System.Object]'."} System.Exception’
If Me.informationLayer.Items.Count > 0 Then
Dim rect As LocationRect = Me.informationLayer.GetBestView(Me.GetIEnumerable(Me.informationLayer))
rect.MapControl = Me.radMap
Me.radMap.Center = rect.Center
Me.radMap.ZoomLevel = rect.ZoomLevel
End If
Regards,
Joe
<telerik:RadTileView Grid.Column="1" ColumnsCount="5" ColumnWidth="*" ContentTemplate="{StaticResource tileContentTemplate}" IsItemDraggingEnabled="False" IsSelectionEnabled="True" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding List}" ItemTemplate="{StaticResource tileHeaderTemplate}" MaximizeMode="Zero" RowHeight="140" SelectedItem="{Binding SelectedItem}" /><Window x:Class="TileHiddenProblem.MainWindow" xmlns:common="clr-namespace:TileHiddenProblem" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50"/> <ColumnDefinition Width="50"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid Grid.Column="0"> <StackPanel> <Button Width="50" Content="CallTile" Click="Button_Click_1"/> <Button Width="50" Content="MessageTile" Click="Button_Click_1"/> <Button Width="50" Content="CommandTile" Click="Button_Click_1"/> <Button Content="ITServicesTile" Click="Button_Click_1"/> <Button Content="SubscribersTile" Click="Button_Click_1"/> <Button Content="GroupTile" Click="Button_Click_1"/> <Button Content="ChangeTrackerTile" Click="Button_Click_1"/> <Button Content="RecentCallsTile" Click="Button_Click_1"/> </StackPanel> </Grid> <Grid Grid.Column="1"> <StackPanel> <Button Width="50" Content="CallTile" Click="Button_Click_2"/> <Button Width="50" Content="MessageTile" Click="Button_Click_2"/> <Button Width="50" Content="CommandTile" Click="Button_Click_2"/> <Button Content="ITServicesTile" Click="Button_Click_2"/> <Button Content="SubscribersTile" Click="Button_Click_2"/> <Button Content="GroupTile" Click="Button_Click_2"/> <Button Content="ChangeTrackerTile" Click="Button_Click_2"/> <Button Content="RecentCallsTile" Click="Button_Click_2"/> </StackPanel> </Grid> <common:radTileControl x:Name="tc01" Grid.Column="2"/> </Grid> </Window> using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Telerik.Windows.Controls; namespace TileHiddenProblem { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click_1(object sender, RoutedEventArgs e) { Button bt = e.OriginalSource as Button; tc01.ChangeTileState(bt.Content.ToString()); } private void Button_Click_2(object sender, RoutedEventArgs e) { Button bt = e.OriginalSource as Button; tc01.ChangeTileStateHidden(bt.Content.ToString()); } } } <UserControl x:Class="TileHiddenProblem.radTileControl" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:telerikNavigation="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation" xmlns:Telerik_Windows_Controls_TileView="clr-namespace:Telerik.Windows.Controls.TileView;assembly=Telerik.Windows.Controls.Navigation,Version=2011.2.0920.40,Culture=neutral,PublicKeyToken=5803cfa389c90ce7" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <telerikNavigation:RadTileView TileStateChangeTrigger="SingleClick" MinimizedItemsPosition="Bottom" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="tvc_MainTiles" TileStateChanged="tvc_MainTiles_TilesStateChanged" Loaded="tvc_MainTiles_Loaded" MinimizedRowHeight="45" MinimizedColumnWidth="200" IsItemDraggingEnabled="True" Padding="0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" DragMode="Swap" IsAnimationOptimized="True" IsTextSearchEnabled="False" PreservePositionWhenMaximized="False" FontFamily="B Titr" FontSize="14"> <telerikNavigation:RadTileView.Resources> <Style x:Key="DragableTileStyle" TargetType="{x:Type telerikNavigation:RadTileViewItem}"> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> <Setter Property="VerticalContentAlignment" Value="Stretch"/> <Setter Property="Background" Value="#CC000000"/> <Setter Property="BorderBrush" Value="{StaticResource RadTileView_Border}"/> <Setter Property="BorderThickness" Value="1"/> <!--<Setter Property="FlowDirection" Value="RightToLeft"/>--> <Setter Property="Padding" Value="7"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="telerikNavigation:RadTileViewItem"> <Grid x:Name="Maingrid"> <Border Margin="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="5"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <ContentPresenter Cursor="Arrow" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Grid.Row="1" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/> <!--<Border Cursor="Hand" Background="{StaticResource RadTileView_HeaderBackground}" BorderBrush="{StaticResource RadTileView_HeaderBorder}" BorderThickness="0 0 0 1" CornerRadius="4 4 0 0" Padding="10 0 7 0">--> <Border Cursor="Hand" Background="{StaticResource TileView_HeaderBackground}" BorderBrush="{StaticResource RadTileView_HeaderBorder}" BorderThickness="0 0 0 1" > <Grid MinHeight="28" > <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <!--<ColumnDefinition Width="15"/> <ColumnDefinition Width="20"/> <ColumnDefinition Width="20"/>--> </Grid.ColumnDefinitions> <Border Grid.Column="0" x:Name="GripBarElement" > <!--<ContentPresenter Height="15" HorizontalAlignment="Stretch" Margin="10,0,10,0" VerticalAlignment="Stretch" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}"/>--> <Telerik_Windows_Controls_TileView:TileViewItemHeader x:Name="HeaderPart" HeaderTemplate="{TemplateBinding HeaderTemplate}" Style="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=HeaderStyle, Mode=TwoWay}"> <ContentPresenter Height="15" HorizontalAlignment="Stretch" Margin="10,0,10,0" VerticalAlignment="Stretch" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}"/> </Telerik_Windows_Controls_TileView:TileViewItemHeader> </Border> </Grid> </Border> <Rectangle x:Name="DisabledVisual" Fill="{StaticResource DisabledBrush}" RadiusX="4" RadiusY="4" Visibility="Collapsed" Grid.RowSpan="2"/> </Grid> </Border> <!-- Selectrion state --> <Grid x:Name="SelectedItem" Visibility="Collapsed" Margin="-1"> <Border CornerRadius="{StaticResource TileView_OuterBorder_CornerRadius}" Margin="{TemplateBinding Padding}" BorderBrush="{StaticResource ControlOuterBorder_Selected}" BorderThickness="2" /> </Grid> <!-- MouseOver dragging state --> <Border x:Name="MouseOverBorder" Visibility="Collapsed" Opacity="0.5" BorderThickness="{StaticResource TileView_MaximizeArea_BorderThickness}" BorderBrush="{StaticResource TileView_MaximizeArea_BorderBrush}" Background="{StaticResource TileView_MaximizeArea_Background}" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter TargetName="SelectedItem" Property="Visibility" Value="Visible" /> <Setter Property="Visibility" Value="Collapsed" TargetName="Maingrid"/> </Trigger> <Trigger Property="IsMouseOverDragging" Value="True"> <Setter TargetName="MouseOverBorder" Property="Visibility" Value="Visible"></Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <DataTemplate x:Key="TileTemplate"> <Ellipse Height="40" Width="40"/> </DataTemplate> <Style TargetType="telerik:RadTileViewItem"> <Setter Property="Background" Value="#CC000000" /> </Style> <Style x:Key="FluidContentControlStyle" TargetType="telerik:RadFluidContentControl" > <Setter Property="ContentChangeMode" Value="Manual" /> </Style> </telerikNavigation:RadTileView.Resources> <telerikNavigation:RadTileViewItem x:Name="CallTile" Header="calltile" ForceCursor="True" Background="#CC000000"> <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}" > <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid > </Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> <telerikNavigation:RadTileViewItem x:Name="MessageTile" Header="message tile" > <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}"> <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid> </Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> <telerikNavigation:RadTileViewItem x:Name="CommandTile" Header="commandtile"> <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}"> <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid > </Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> <telerikNavigation:RadTileViewItem x:Name="ITServicesTile" Header="itservices"> <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}"> <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid > </Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> <telerikNavigation:RadTileViewItem x:Name="SubscribersTile" Header="subscribertile"> <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}"> <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid> </Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> <telerikNavigation:RadTileViewItem x:Name="GroupTile" Header="grouptile"> <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}"> <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid > </Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> <telerikNavigation:RadTileViewItem x:Name="ChangeTrackerTile" Header="changetrackertile"> <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}"> <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid></Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> <telerikNavigation:RadTileViewItem x:Name="RecentCallsTile" Header="recentcalltile"> <telerik:RadFluidContentControl Style="{StaticResource ResourceKey=FluidContentControlStyle}"> <telerik:RadFluidContentControl.SmallContent> <Grid> </Grid> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Grid></Grid> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </telerikNavigation:RadTileViewItem> </telerikNavigation:RadTileView> </UserControl>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Telerik.Windows.Controls; namespace TileHiddenProblem { /// <summary> /// Interaction logic for radTileControl.xaml /// </summary> public partial class radTileControl : UserControl { public radTileControl() { InitializeComponent(); } public void ChangeTileState(string Name) { RadTileViewItem tileItem = new RadTileViewItem(); switch (Name) { case "CallTile": tileItem = tvc_MainTiles.Items[0] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; case "MessageTile": tileItem = tvc_MainTiles.Items[1] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; case "CommandTile": tileItem = tvc_MainTiles.Items[2] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; case "ITServicesTile": tileItem = tvc_MainTiles.Items[3] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; case "SubscribersTile": tileItem = tvc_MainTiles.Items[4] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; case "GroupTile": tileItem = tvc_MainTiles.Items[5] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; case "ChangeTrackerTile": tileItem = tvc_MainTiles.Items[6] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; case "RecentCallsTile": tileItem = tvc_MainTiles.Items[7] as RadTileViewItem; tileItem.Visibility = Visibility.Visible; tileItem.TileState = TileViewItemState.Maximized; break; } } public void ChangeTileStateHidden(string Name) { RadTileViewItem tileItem = new RadTileViewItem(); switch (Name) { case "CallTile": tileItem = tvc_MainTiles.Items[0] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; case "MessageTile": tileItem = tvc_MainTiles.Items[1] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; case "CommandTile": tileItem = tvc_MainTiles.Items[2] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; case "ITServicesTile": tileItem = tvc_MainTiles.Items[3] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; case "SubscribersTile": tileItem = tvc_MainTiles.Items[4] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; case "GroupTile": tileItem = tvc_MainTiles.Items[5] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; case "ChangeTrackerTile": tileItem = tvc_MainTiles.Items[6] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; case "RecentCallsTile": tileItem = tvc_MainTiles.Items[7] as RadTileViewItem; tileItem.Visibility = Visibility.Hidden; break; } } private void tvc_MainTiles_TilesStateChanged(object sender, Telerik.Windows.RadRoutedEventArgs e) { foreach (RadTileViewItem radTileViewItem in tvc_MainTiles.Items) { if (radTileViewItem.Name == Name) if (radTileViewItem.Visibility == Visibility.Hidden) { radTileViewItem.Visibility = Visibility.Visible; radTileViewItem.TileState = TileViewItemState.Maximized; return; } else { radTileViewItem.TileState = TileViewItemState.Restored; radTileViewItem.Visibility = Visibility.Hidden; return; } } } private void tvc_MainTiles_Loaded(object sender, RoutedEventArgs e) { foreach (RadTileViewItem radTileViewItem in tvc_MainTiles.Items) { RadFluidContentControl fluidControl = radTileViewItem.ChildrenOfType<RadFluidContentControl>().First(); if (fluidControl != null) { switch (radTileViewItem.TileState) { case TileViewItemState.Maximized: fluidControl.State = FluidContentControlState.Large; break; case TileViewItemState.Minimized: fluidControl.State = FluidContentControlState.Small; break; case TileViewItemState.Restored: fluidControl.State = FluidContentControlState.Normal; break; } } } } } }
<Setter Property="Stroke"> <Setter.Value> <LinearGradientBrush StartPoint="0,0" EndPoint="1,0"> <GradientStop Color="DimGray" Offset="0.0" /> <GradientStop Color="Black" Offset="1" /> </LinearGradientBrush> </Setter.Value></Setter>