or
<Style TargetType="chart:MyChartConnector" x:Key="MyChartConnectorStyle" BasedOn="{StaticResource RadDiagramConnectorStyle}"> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> <!-- Auto seems reasonable? --> <Setter Property="Width" Value="Auto" /> <Setter Property="Height" Value="Auto" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="chart:MyChartConnector"> <Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="MouseStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="MouseOver"> <Storyboard> <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="DisplayElement" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Visibility>Collapsed</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="ActiveStates"> <VisualState x:Name="Inactive" /> <VisualState x:Name="Active"> <Storyboard> <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="DisplayElement" Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Visibility>Collapsed</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Grid> <Ellipse x:Name="OverElement" Width="20" Height="20" Fill="{TemplateBinding Background}" StrokeThickness="{TemplateBinding BorderThickness}" Stroke="{TemplateBinding BorderBrush}" /> <Ellipse x:Name="DisplayElement" Width="20" Height="20" Fill="#40000000" StrokeThickness="{TemplateBinding BorderThickness}" Stroke="{TemplateBinding BorderBrush}" /> <!-- This does not work as intented :( --> <TextBlock Text="{TemplateBinding DisplayName}" Visibility="Collapsed"> <TextBlock.Style> <Style TargetType="TextBlock"> <Style.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type chart:MyChartShape}}, Path=IsMouseOver}" Value="True" > <Setter Property="Visibility" Value="Visible" /> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> </Grid> </Grid> </ControlTemplate> </Setter.Value> </Setter></Style><telerik:RadChart x:Name="RadChart1" Grid.Row="1" Grid.Column="1" UseDefaultLayout="False"> <telerik:RadChart.SamplingSettings> <telerik:SamplingSettings SamplingFunction="Average" /> </telerik:RadChart.SamplingSettings> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="10" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="10" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="10" /> <RowDefinition Height="*" /> <RowDefinition Height="100" /> <RowDefinition Height="10" /> </Grid.RowDefinitions> <Grid /> <telerik:ChartLegend x:Name="legendChart" Grid.Row="2" Grid.Column="1" Header="" ItemContainerStyle="{DynamicResource CharLegendStyle}" ItemsPanelOrientation="Horizontal" LegendItemMarkerShape="Circle" UseAutoGeneratedItems="false" /> <telerik:ChartArea x:Name="lineGraphChartArea" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" EnableAnimations="False" LegendName="legendChart"> <telerik:ChartArea.AxisX> <telerik:AxisX Title="Fecha" AutoRange="True" IsDateTime="True" Step="1" /> </telerik:ChartArea.AxisX> <telerik:ChartArea.AxisY> <telerik:AxisY Title="CMN" AutoRange="True" ExtendDirection="Up" IsZeroBased="True" /> </telerik:ChartArea.AxisY> </telerik:ChartArea> </Grid></telerik:RadChart>public SeriesMapping GenerateRandomSeries(string nameSerie,int begin) { SeriesMapping serie1 = new SeriesMapping(); serie1.ItemsSource = GenerateRandomData(begin); serie1.ChartAreaName = "lineGraphChartArea"; serie1.LegendLabel = nameSerie; ItemMapping X = new ItemMapping("Fecha", DataPointMember.XValue); ItemMapping Y = new ItemMapping("CMN", DataPointMember.YValue); serie1.ItemMappings.Add(X); serie1.ItemMappings.Add(Y); serie1.SeriesDefinition = new SplineSeriesDefinition() { }; return serie1; }public void AddSerieDefinition() { RadChart1.SeriesMappings.Add(GenerateRandomSeries("serie1",5)); RadChart1.SeriesMappings.Add(GenerateRandomSeries("serie2",10)); RadChart1.SeriesMappings.Add(GenerateRandomSeries("serie3",15)); }<telerik:RadRibbonView.ContextualGroups>
<telerik:RadRibbonContextualGroup x:Name="xCOM" IsActive="{Binding RelativeSource={RelativeSource Self}, Path=IsPortSelected}"/>
<telerik:RadRibbonContextualGroup x:Name="xCOM" IsActive="{Binding ElementName=_this, Path=IsPortSelected}"/>
<telerik:RadRibbonContextualGroup x:Name="xCOM" IsActive="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MyRibbon}}, Path=IsPortSelected}"/>
<telerik:RadRibbonContextualGroup x:Name="xCOM" IsActive="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=IsPortSelected}"/>
</telerik:RadRibbonView.ContextualGroups>string _port = "";public string Port{ get { return _port; } set { if (_port == value) { return; } _port = value; }}public bool IsPortSelected{ get { if (String.IsNullOrEmpty(_port)) { return false; } else if (_port.Equals("Port")) { return false; } return true; } set { }}
1. Press some button and open the RadWindow with my empty RadGridView Inside
2. Without clicking anywhere, Press Ctrl + V and paste inside the RadGridView all the data that i have in the clipboard
3. that's it
I tried to set the focus to the RadGridView, but it doesnt seems to work.
Thanks.
When a property return type is ArraySegment<T> and properties are auto-generated, an exception is thrown and the control is not displayed.
My example specifically:
public class TestClass{ private readonly ArraySegment<string> _strings; public IReadOnlyList<string> Strings { get { return this._strings; } }}<Grid><Grid.Resources><local:BooleanConverterx:Key="BooleanConverter"/><local:InvBooleanConverterx:Key="InvBooleanConverter"/><local:StringToIntConverterx:Key="StringToIntConverter"/><local:StringToDblConverterx:Key="StringToDblConverter"/><local:SettingValueTemplateSelectorx:Key="SettingValueTemplateSelector"><local:SettingValueTemplateSelector.BooleanTemplate><DataTemplate><StackPanelOrientation="Horizontal"><telerik:RadRadioButtonIsChecked="{Binding Path=Value}"><TextBlockText="Enabled"/></telerik:RadRadioButton><telerik:RadRadioButtonIsChecked="{Binding Path=Value}"><TextBlockText="Disabled"/></telerik:RadRadioButton></StackPanel></DataTemplate></local:SettingValueTemplateSelector.BooleanTemplate><local:SettingValueTemplateSelector.IntTemplate><DataTemplate><telerik:RadNumericUpDownValue="{Binding Path=Value, Converter={StaticResource StringToIntConverter}}"NumberDecimalDigits="0"/></DataTemplate></local:SettingValueTemplateSelector.IntTemplate><local:SettingValueTemplateSelector.DoubleTemplate><DataTemplate><telerik:RadNumericUpDownValue="{Binding Path=Value,Converter={StaticResource StringToDblConverter}}"/></DataTemplate></local:SettingValueTemplateSelector.DoubleTemplate><local:SettingValueTemplateSelector.StringTemplate><DataTemplate><TextBlockText="{Binding Path=Value, Mode=TwoWay}"/></DataTemplate></local:SettingValueTemplateSelector.StringTemplate></local:SettingValueTemplateSelector></Grid.Resources><telerik:RadGridViewx:Name="RadGridView"GroupRenderMode="Flat"RowIndicatorVisibility="Collapsed"CanUserFreezeColumns="False"ItemsSource="{Binding ElementName=Window1, Path=List}"IsReadOnly="false"ScrollMode="Deferred"AutoExpandGroups="True"AutoGenerateColumns="false"Margin="0,2,0,-2"><telerik:RadGridView.Columns><telerik:GridViewDataColumnHeader="Value"IsGroupable="True"DataMemberBinding="{Binding Value}"CellTemplateSelector="{StaticResource SettingValueTemplateSelector}"Background="LightGray"></telerik:GridViewDataColumn><telerik:GridViewDataColumnHeader="ValueType"IsGroupable="True"DataMemberBinding="{Binding ValueType}"Background="LightGray"></telerik:GridViewDataColumn></telerik:RadGridView.Columns></telerik:RadGridView></Grid>
Template selector:publicclassSettingValueTemplateSelector : DataTemplateSelector{publicoverrideDataTemplate SelectTemplate(objectitem, DependencyObject container){if(itemisDataObjecten){DataObjecten model = itemasDataObjecten;if(model.ValueType ==typeof(int))returnthis.IntTemplate;elseif(model.ValueType ==typeof(String))returnthis.StringTemplate;elseif(model.ValueType ==typeof(double))returnthis.DoubleTemplate;elseif(model.ValueType ==typeof(bool))returnthis.BooleanTemplate;elsereturnnull;}returnnull;}}
One of the converters (basic):publicclassStringToIntConverter : IValueConverter{publicobjectConvert(objectvalue, Type targetType,objectparameter, System.Globalization.CultureInfo culture){intretValue=0;if(int.TryParse(value.ToString(),outretValue)){returnretValue;}elsereturn0;}publicobjectConvertBack(objectvalue, Type targetType,objectparameter, System.Globalization.CultureInfo culture){thrownewNotSupportedException("Do not use this converter for objects other than boolean");}}
Model:publicclassDataObject{publicobjectValue {get;set; }publicType ValueType {get;set; }}List.Add(newDataObject() { Value ="8", ValueType =typeof(int) });List.Add(newDataObject() { Value ="8", ValueType =typeof(double) });List.Add(newDataObject() { Value ="8gf", ValueType =typeof(string) });List.Add(newDataObject() { Value = 454365, ValueType =typeof(int) });List.Add(newDataObject() { Value =false, ValueType =typeof(bool) });