or
xmlns:grid="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView"<telerik:RadGridView x:Name="radGridView" ShowGroupPanel="True" ColumnWidth="*" IsReadOnly="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="Transparent" Grid.Row="0" Grid.RowSpan="4" SelectionMode="Single" Grid.Column="1" BorderThickness="0" FontFamily="Segoe UI" FontSize="12" CanUserFreezeColumns="False" RowIndicatorVisibility="Collapsed" MouseDoubleClick="myGridView_MouseDoubleClick" CanUserResizeColumns="True" AutoGenerateColumns="False" ItemsSource="{Binding Path=SearchStuff}" SelectedItem="{Binding Path=SelectedSearchStuff, Mode=TwoWay}" GroupPanelStyle="{DynamicResource GridViewGroupPanelStyle1}" GroupRenderMode="Flat" GroupRowStyle="{DynamicResource GridViewGroupRowStyle1}">
TreeView Resources
<telerik:RadGridView.Resources> <Style x:Key="GridViewGroupPanelStyle1" TargetType="{x:Type telerik:GridViewGroupPanel}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type telerik:GridViewGroupPanel}"> <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" Height="36"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="Grouping"> <VisualState x:Name="NoGroups"/> <VisualState x:Name="HasGroups"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="panelText"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Visibility>Collapsed</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="panelTextGrouped"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Visibility>Visible</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border BorderBrush="#FFEFF6FF" BorderThickness="0" Background="{TemplateBinding Background}" > <StackPanel Orientation="Horizontal"> <TextBlock x:Name="panelText" FontFamily="Segoe UI" FontSize="12" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" IsHitTestVisible="False" Margin="{TemplateBinding Padding}" telerik:LocalizationManager.ResourceKey="GridViewGroupPanelText" Text="Drag a column header and drop it here to group by that column" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"><Run/></TextBlock> <TextBlock x:Name="panelTextGrouped" FontFamily="Segoe UI" FontSize="12" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" IsHitTestVisible="False" Margin="{TemplateBinding Padding}" telerik:LocalizationManager.ResourceKey="GridViewGroupPanelTopTextGrouped" Text="Grouped by:" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"><Run/></TextBlock> <ItemsPresenter VerticalAlignment="Center"/> </StackPanel> <Border.Effect> <DropShadowEffect Color="Black" Opacity=".2" BlurRadius="4" ShadowDepth="2" Direction="270" /> </Border.Effect> </Border> </Border> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <StackPanel IsItemsHost="True" Orientation="Horizontal" VerticalAlignment="Stretch"/> </ItemsPanelTemplate> </Setter.Value> </Setter> <Setter Property="MinHeight" Value="32"/> <Setter Property="Margin" Value="0"/> <Setter Property="Padding" Value="10,0,3,0"/> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFDFDFDF" Offset="1"/> <GradientStop Color="#FFBABABA"/> </LinearGradientBrush> </Setter.Value> </Setter> <Setter Property="BorderBrush" Value="#FF848484"/> <Setter Property="BorderThickness" Value="0,0,0,1"/> <Setter Property="VerticalContentAlignment" Value="Center"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> <Setter Property="SnapsToDevicePixels" Value="True"/> </Style> <Style x:Key="GridViewGroupRowStyle1" TargetType="{x:Type grid:GridViewGroupRow}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type grid:GridViewGroupRow}"> <Grid x:Name="PART_GroupExpanderGrid"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition x:Name="PART_HeaderRow" MinHeight="{TemplateBinding MinHeight}"/> <RowDefinition x:Name="ContentRow" Height="Auto"/> </Grid.RowDefinitions> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="ExpandStateGroup"> <VisualState x:Name="Expanded"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="Content"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Visibility>Visible</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="BottomBorder" > <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Visibility>Visible</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconOuterBorder"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Thickness>0</Thickness> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" Storyboard.TargetName="IconInnerBorder"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Thickness>1,1,0,0</Thickness> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton"> <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="180"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Collapsed"> <Storyboard> <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" Storyboard.TargetName="ExpanderButton"> <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border x:Name="ToggleButtonBorder" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" Grid.Column="2" MinHeight="{TemplateBinding MinHeight}" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="25"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Border Grid.Column="2" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> <Border.Visibility> <Binding Path="ShowHeaderAggregates" RelativeSource="{RelativeSource TemplatedParent}"> <Binding.Converter> <telerik:BooleanToVisibilityConverter/> </Binding.Converter> </Binding> </Border.Visibility> <telerik:AggregateResultsList HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" IsTabStop="False" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> <telerik:AggregateResultsList.ItemsPanel> <ItemsPanelTemplate> <StackPanel IsItemsHost="True" Orientation="Horizontal"/> </ItemsPanelTemplate> </telerik:AggregateResultsList.ItemsPanel> <telerik:AggregateResultsList.ItemTemplate> <DataTemplate> <telerik:GridViewAggregateResultCell AggregateResult="{Binding}" IsTabStop="False"> <telerik:StyleManager.Theme> <telerik:Office_BlackTheme/> </telerik:StyleManager.Theme> </telerik:GridViewAggregateResultCell> </DataTemplate> </telerik:AggregateResultsList.ItemTemplate> </telerik:AggregateResultsList> </Border> <Border x:Name="IconOuterBorder" BorderBrush="Transparent" BorderThickness="0,0,0,0" Background="Transparent" HorizontalAlignment="Stretch" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"> <Border x:Name="IconInnerBorder" BorderBrush="White" BorderThickness="1,1,0,1"> <Path x:Name="ExpanderButton" Grid.Column="0" Data="M0,0L1,0 2,0 2,0.99999991 3,0.99999991 3,2 4,2 4,0.99999991 5,0.99999991 5,0 5.9999999,0 7,0 7,0.99999991 5.9999999,0.99999991 5.9999999,2 5,2 5,3 4,3 4,4 3,4 3,3 2,3 2,2 1,2 1,0.99999991 0,0.99999991z" Fill="Black" HorizontalAlignment="Left" Height="5" Margin="{TemplateBinding Padding}" RenderTransformOrigin="0.5,0.5" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="7"> <Path.RenderTransform> <RotateTransform/> </Path.RenderTransform> </Path> </Border> </Border> <ToggleButton x:Name="HeaderButton" Background="{TemplateBinding Background}" Grid.ColumnSpan="3" Grid.Column="0" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Opacity="0" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"/> <ToggleButton BorderBrush="{x:Null}" BorderThickness="0" Background="Transparent" Grid.Column="1" IsTabStop="{TemplateBinding IsTabStop}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Padding="0,0,10,0" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"> <ToggleButton.Style> <Style TargetType="{x:Type ToggleButton}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"> <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}"/> </Border> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="HorizontalContentAlignment" Value="Left"/> <Setter Property="VerticalContentAlignment" Value="Center"/> <Setter Property="Padding" Value="9,0,0,0"/> </Style> </ToggleButton.Style> <ContentPresenter ContentTemplate="{TemplateBinding GroupHeaderTemplate}" Content="{TemplateBinding GroupViewModel}" Grid.Column="1" Margin="0,0,10,0" VerticalAlignment="Center"/> </ToggleButton> <Border BorderBrush="Transparent" BorderThickness="0,0,0,0" Grid.ColumnSpan="2" Grid.Column="1" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True"> <Border BorderBrush="White" BorderThickness="0,1,1,1"/> </Border> </Grid> </Border> <Border x:Name="PART_IndicatorPresenter" BorderBrush="Transparent" BorderThickness="0,0,1,1" Grid.Column="0" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{TemplateBinding RowIndicatorVisibility}" VerticalAlignment="Stretch" Width="25"> <Border BorderBrush="White" BorderThickness="1" Background="#FFE4E4E4"/> </Border> <telerik:IndentPresenter Background="{TemplateBinding Background}" Grid.Column="1" IsTabStop="False" IndentLevel="{TemplateBinding Level}" telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical"> <telerik:StyleManager.Theme> <telerik:Office_BlackTheme/> </telerik:StyleManager.Theme> </telerik:IndentPresenter> <Border x:Name="Content" Grid.ColumnSpan="5" Grid.Column="0" Grid.Row="1" Visibility="Collapsed"> <StackPanel> <telerik:GridViewVirtualizingPanel x:Name="PART_GridViewVirtualizingPanel" CanHorizontallyScroll="False" CanVerticallyScroll="False"/> <telerik:GridViewGroupFooterRow x:Name="Footer" IsTabStop="False"> <telerik:StyleManager.Theme> <telerik:Office_BlackTheme/> </telerik:StyleManager.Theme> </telerik:GridViewGroupFooterRow> </StackPanel> </Border> <Border x:Name="BottomBorder" BorderBrush="{StaticResource BasicBrush}" BorderThickness="0,0,0,0" Grid.Column="2" Grid.Row="1" telerik:SelectiveScrollingGrid.SelectiveScrollingClip="True" Visibility="Collapsed" VerticalAlignment="Bottom"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="GroupHeaderTemplate"> <Setter.Value> <DataTemplate> <ContentPresenter Content="{Binding Header}"/> </DataTemplate> </Setter.Value> </Setter> <Setter Property="Background" Value="#FFE4E4E4"/> <Setter Property="BorderBrush" Value="Transparent"/> <Setter Property="BorderThickness" Value="0"/> <Setter Property="VerticalContentAlignment" Value="Center"/> <Setter Property="HorizontalContentAlignment" Value="Left"/> <Setter Property="Padding" Value="10,0,0,0"/> <Setter Property="MinHeight" Value="25"/> <Setter Property="AllowDrop" Value="True"/> <Setter Property="SnapsToDevicePixels" Value="True"/> </Style> </telerik:RadGridView.Resources>
User Control Resources
<UserControl.Resources> <Style TargetType="grid:GridViewIndentCell"> <Setter Property="Background" Value="{StaticResource MainBrush}" /> <Setter Property="BorderBrush" Value="{StaticResource BasicBrush}"/> <Setter Property="BorderThickness" Value="0,0,0,0"/> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="Padding" Value="0" /> <Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="grid:GridViewIndentCell"> <Border BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" BorderThickness="{TemplateBinding BorderThickness}" Width="25" /> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style TargetType="grid:GridViewHeaderIndentCell"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="grid:GridViewHeaderIndentCell"> <Border x:Name="OuterBorder" Width="25" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"/> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="BorderThickness" Value="0,0,0,0"/> <Setter Property="BorderBrush" Value="{StaticResource AccentBrush}"/> <Setter Property="Background" Value="{StaticResource MainBrush}" /> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="Padding" Value="0" /> <Setter Property="SnapsToDevicePixels" Value="True" /> </Style> </UserControl.Resources>
public UserControl1() { InitializeComponent(); this.DataContext = this; Rad.Item = new object() { }; } public string longStringVal_ { get { return (string)GetValue(longStringVal); } set { SetValue(longStringVal, value); } }public static readonly DependencyProperty longStringVal = DependencyProperty.Register( "longStringVal_", typeof(string), typeof(TextBox) );<Grid> <telerik:RadPropertyGrid x:Name="Rad" > <telerik:RadPropertyGrid.PropertyDefinitions> <telerik:PropertyDefinition DisplayName="LongStr" OrderIndex="-1" > <telerik:PropertyDefinition.EditorTemplate> <DataTemplate> <TextBox MinLines="3" MaxLines="3" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible" AcceptsReturn="true" x:Name="longStringValue" Text="{Binding Path = longStringVal_, Mode=TwoWay}" /> </DataTemplate> </telerik:PropertyDefinition.EditorTemplate> </telerik:PropertyDefinition> </telerik:RadPropertyGrid.PropertyDefinitions> </telerik:RadPropertyGrid></Grid>public class Entry : PropertyChangedBase{ private string name; public string Name { get { return this.name; } set { this.name = value; this.NotifyOfPropertyChange(() => this.Name); this.description = "new content of a description cell"; this.NotifyOfPropertyChange(() => this.Description); } } private string description; public string Description { get { return this.description; } set { this.description = value; this.NotifyOfPropertyChange(() => this.Description); } } public override int GetHashCode() { return 145; }}
