I am trying to bind a few ContextMenu items to the selected appointment's properties, however I can't seem to get to the DataContext of the scheduleview.
<telerik:RadMenuItem Header="Requires Nurse..." IsChecked="{Binding Menu.UIElement.SelectedAppointment.Require_Nurse}" />
I've tried RelativeSource up to the ScheduleGrid, or direct to UIElement and everything gives me the same binding expression error that Schedule_VM doesn't contain a property for Require_Nurse.
Is there any way to bind a context menu item to the appointment? Even if I get it bound will it actually allow modifying of the property?
Hello,
I'm working on a WPF application using Prism 5 and Telerik UI for WPF R3 2016. The application loads dinamically 2 separate modules (dll) using UnityContainer and inject them in a RadDocking control as follows:
MainWindow.xaml
<Window.Resources>
<Style TargetType="telerik:RadDocumentPane">
<Setter Property="Header" Value="{Binding DataContext.Title}"/>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ContentControl VerticalAlignment="Center" HorizontalAlignment="Center"
Margin="0,0,7,0" Content="{Binding}"/>
<Button Grid.Column="1" Content="x">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<prism:CloseTabAction/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<Button Content="Toolbar" Command="{Binding ShowToolbarCommand}" Width="50" Height="25" HorizontalAlignment="Left"></Button>
<Button Content="Home" Command="{Binding ShowHomeCommand}" Width="50" Height="25" HorizontalAlignment="Left"></Button>
</StackPanel>
<DockPanel Grid.Row="1" LastChildFill="True">
<telerikDocking:RadDocking x:Name="Docking" Background="Transparent"
BorderThickness="0">
<telerikDocking:RadDocking.DocumentHost>
<telerikDocking:RadSplitContainer >
<telerikDocking:RadPaneGroup regions:RegionManager.RegionName="{x:Static model:RegionNames.ContentRegion}"/>
</telerikDocking:RadSplitContainer>
</telerikDocking:RadDocking.DocumentHost>
<telerikDocking:RadSplitContainer MaxWidth="400" Width="175" MinWidth="175" InitialPosition="DockedLeft">
<telerikDocking:RadPaneGroup>
<telerikDocking:RadDocumentPane CanUserClose="False" PaneHeaderVisibility="Collapsed"
regions:RegionManager.RegionName="{x:Static model:RegionNames.LeftRegion}">
</telerikDocking:RadDocumentPane>
</telerikDocking:RadPaneGroup>
</telerikDocking:RadSplitContainer>
</telerikDocking:RadDocking>
</DockPanel>
</Grid>
CloseTabAction.cs
public class CloseTabAction : TriggerAction<Button>
{
protected override void Invoke(object parameter)
{
var args = parameter as RoutedEventArgs;
if (args == null)
return;
var tabItem = FindParent<RadPane>(args.OriginalSource as DependencyObject);
if (tabItem == null)
return;
var tabControl = FindParent<RadPaneGroup>(tabItem);
if (tabControl == null)
return;
IRegion region = RegionManager.GetObservableRegion(tabControl).Value;
if (region == null)
return;
RemoveItemFromRegion(tabItem.Content, region);
}
void RemoveItemFromRegion(object item, IRegion region)
{
var navigationContext = new NavigationContext(region.NavigationService, null);
if (CanRemove(item, navigationContext))
{
InvokeOnNavigatedFrom(item, navigationContext);
region.Remove(item);
}
}
void InvokeOnNavigatedFrom(object item, NavigationContext navigationContext)
{
var navigationAwareItem = item as INavigationAware;
if (navigationAwareItem != null)
navigationAwareItem.OnNavigatedFrom(navigationContext);
var frameworkElement = item as FrameworkElement;
if (frameworkElement != null)
{
INavigationAware navigationAwareDataContext = frameworkElement.DataContext as INavigationAware;
if (navigationAwareDataContext != null)
{
navigationAwareDataContext.OnNavigatedFrom(navigationContext);
}
}
}
bool CanRemove(object item, NavigationContext navigationContext)
{
bool canRemove = true;
var confirmRequestItem = item as IConfirmNavigationRequest;
if (confirmRequestItem != null)
{
confirmRequestItem.ConfirmNavigationRequest(navigationContext, result =>
{
canRemove = result;
});
}
var frameworkElement = item as FrameworkElement;
if (frameworkElement != null && canRemove)
{
IConfirmNavigationRequest confirmRequestDataContext = frameworkElement.DataContext as IConfirmNavigationRequest;
if (confirmRequestDataContext != null)
{
confirmRequestDataContext.ConfirmNavigationRequest(navigationContext, result =>
{
canRemove = result;
});
}
}
return canRemove;
}
static T FindParent<T>(DependencyObject child) where T : DependencyObject
{
DependencyObject parentObject = VisualTreeHelper.GetParent(child);
if (parentObject == null)
return null;
var parent = parentObject as T;
if (parent != null)
return parent;
return FindParent<T>(parentObject);
}
}
I've overrided Prism ScopedRegionNavigationContentLoader in order to allow views injections using navigation to create ScopedRegions:
public class ScopedRegionNavigationContentLoader: IRegionNavigationContentLoader
{
private readonly IServiceLocator serviceLocator;
/// <summary>
/// Initializes a new instance of the <see cref="RegionNavigationContentLoader"/> class with a service locator.
/// </summary>
/// <param name="serviceLocator">The service locator.</param>
public ScopedRegionNavigationContentLoader(IServiceLocator serviceLocator)
{
this.serviceLocator = serviceLocator;
}
/// <summary>
/// Gets the view to which the navigation request represented by <paramref name="navigationContext"/> applies.
/// </summary>
/// <param name="region">The region.</param>
/// <param name="navigationContext">The context representing the navigation request.</param>
/// <returns>
/// The view to be the target of the navigation request.
/// </returns>
/// <remarks>
/// If none of the views in the region can be the target of the navigation request, a new view
/// is created and added to the region.
/// </remarks>
/// <exception cref="ArgumentException">when a new view cannot be created for the navigation request.</exception>
public object LoadContent(IRegion region, NavigationContext navigationContext)
{
if (region == null) throw new ArgumentNullException("region");
if (navigationContext == null) throw new ArgumentNullException("navigationContext");
string candidateTargetContract = this.GetContractFromNavigationContext(navigationContext);
var candidates = this.GetCandidatesFromRegion(region, candidateTargetContract);
var acceptingCandidates =
candidates.Where(
v =>
{
var navigationAware = v as INavigationAware;
if (navigationAware != null && !navigationAware.IsNavigationTarget(navigationContext))
{
return false;
}
var frameworkElement = v as FrameworkElement;
if (frameworkElement == null)
{
return true;
}
navigationAware = frameworkElement.DataContext as INavigationAware;
return navigationAware == null || navigationAware.IsNavigationTarget(navigationContext);
});
var view = acceptingCandidates.FirstOrDefault();
if (view != null)
{
return view;
}
view = this.CreateNewRegionItem(candidateTargetContract);
region.Add(view, null, CreateRegionManagerScope(view));
return view;
}
private bool CreateRegionManagerScope(object view)
{
bool createRegionManagerScope = false;
var viewHasScopedRegions = view as ICreateRegionManagerScope;
if (viewHasScopedRegions != null)
createRegionManagerScope = viewHasScopedRegions.CreateRegionManagerScope;
return createRegionManagerScope;
}
/// <summary>
/// Provides a new item for the region based on the supplied candidate target contract name.
/// </summary>
/// <param name="candidateTargetContract">The target contract to build.</param>
/// <returns>An instance of an item to put into the <see cref="IRegion"/>.</returns>
protected virtual object CreateNewRegionItem(string candidateTargetContract)
{
object newRegionItem;
try
{
newRegionItem = this.serviceLocator.GetInstance<object>(candidateTargetContract);
}
catch (ActivationException e)
{
throw new InvalidOperationException(
string.Format(CultureInfo.CurrentCulture, "Cannot create navigation target", candidateTargetContract),
e);
}
return newRegionItem;
}
/// <summary>
/// Returns the candidate TargetContract based on the <see cref="NavigationContext"/>.
/// </summary>
/// <param name="navigationContext">The navigation contract.</param>
/// <returns>The candidate contract to seek within the <see cref="IRegion"/> and to use, if not found, when resolving from the container.</returns>
protected virtual string GetContractFromNavigationContext(NavigationContext navigationContext)
{
if (navigationContext == null) throw new ArgumentNullException("navigationContext");
var candidateTargetContract = UriParsingHelper.GetAbsolutePath(navigationContext.Uri);
candidateTargetContract = candidateTargetContract.TrimStart('/');
return candidateTargetContract;
}
/// <summary>
/// Returns the set of candidates that may satisfiy this navigation request.
/// </summary>
/// <param name="region">The region containing items that may satisfy the navigation request.</param>
/// <param name="candidateNavigationContract">The candidate navigation target as determined by <see cref="GetContractFromNavigationContext"/></param>
/// <returns>An enumerable of candidate objects from the <see cref="IRegion"/></returns>
protected virtual IEnumerable<object> GetCandidatesFromRegion(IRegion region, string candidateNavigationContract)
{
if (region == null) throw new ArgumentNullException("region");
return region.Views.Where(v =>
string.Equals(v.GetType().Name, candidateNavigationContract, StringComparison.Ordinal) ||
string.Equals(v.GetType().FullName, candidateNavigationContract, StringComparison.Ordinal));
}
}
Everything works fine for creation / add RadPanes except Closing and Moving event.
On Close, the the exception is: An unhandled exception of type 'System.InvalidCastException' occurred in Telerik.Windows.Controls.Docking.dll
Additional information: Unable to cast object of type 'ModuleA.Views.ModuleAHomeView' to type 'Telerik.Windows.Controls.RadPane'.
but hostControl is a valid RadPaneGroup and Items collection DO contain ModuleA.Views.ModuleAHomeView
On Move, I've got a NullReferenceExceltopn at Telerik.Windows.Controls.RadPane.OnHeaderMouseLeftButtonDown(Object sender, MouseButtonEventArgs e)
Any help would be highly appreciated.
Best regards,
Alin Halatiu
Hi Telerik,
We've implemented the drag/drop feature for the RadGridView available in the code samples (using the RowReorderBehavior, etc).
Is there a way to highlight the rows that were dropped (i.e. GVR background=Orange)? We've made several attempts to no avail - is there a way to do this without binding to a property in the ViewModel?
Kind regards
I'm attempting to add a basic legend to go along with my dynamically generated line series:<
telerik:RadCartesianChart.SeriesProvider
>
<
telerik:ChartSeriesProvider
Source
=
"{Binding VisiblePortfolios}"
>
<
telerik:ChartSeriesProvider.SeriesDescriptors
>
<
telerik:CategoricalSeriesDescriptor
ItemsSourcePath
=
"EquityCurve"
ValuePath
=
"Value"
CategoryPath
=
"Date"
>
<
telerik:CategoricalSeriesDescriptor.Style
>
<
Style
TargetType
=
"telerik:LineSeries"
>
<
Setter
Property
=
"StrokeThickness"
Value
=
"2"
/>
<
Setter
Property
=
"LegendSettings"
>
<
Setter.Value
>
<
telerik:SeriesLegendSettings
Title
=
"{Binding Name}"
/>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
telerik:CategoricalSeriesDescriptor.Style
>
</
telerik:CategoricalSeriesDescriptor
>
</
telerik:ChartSeriesProvider.SeriesDescriptors
>
</
telerik:ChartSeriesProvider
>
</
telerik:RadCartesianChart.SeriesProvider
>
However, this error occurs when I debug:
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=DataContext.Name; DataItem=null; target element is 'SeriesLegendSettings' (HashCode=10926182); target property is 'Title' (type 'String')
And the legend does not appear at all. Any assistance is greatly appreciated.
hi
i am trying to develop with telerik,and i find this issue
example
there is some data in the gridview like
id name birthday
1 lee 1984-01-01
2 chiang 2000-05-03
3 tom 1986-03-03
jim 1996-12-01
i resort by name column then i get the table below
id name birthday
2 chiang 2000-05-03
jim 1996-12-01
1 lee 1984-01-01
3 tom 1986-03-03
int index = -1;
foreach(gridviewrowinfo row in rows)
{
if(row.cells["name"]=="lee")
{index=row.index;} //here we can get the index = 2
}
if(index>-1)
{
rows[index].cells["birthday"]="1999-03-05";
}
then we get the table below:
id name birthday
2 chiang 2000-05-03
jim 1996-12-01
1 lee 1984-01-01
3 tom 1999-03-05
have anyone get the mind that i mean?
when after the foreach we get a index after resorted and when we use rows[index] then the gridview point to the line before it is resorted!
so does it a bug?when will you fix it?
I am trying to style the gridview and I am running into an error which I can not figure out.
I have a 'templating' xaml and added and GridViewRow to it. Then in Blend i used RMB -> template -> Edit a copy.
which results in the following
<
Style
TargetType
=
"{x:Type telerik:GridViewRow}"
>
<
Setter
Property
=
"IsTabStop"
Value
=
"False"
/>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"{x:Type telerik:GridViewRow}"
>
<
Border
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"FocusStates"
>
<
VisualState
x:Name
=
"Unfocused"
/>
<
VisualState
x:Name
=
"Focused"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"NavigatorIndicator"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"SelectionStates"
>
<
VisualState
x:Name
=
"Unselected"
/>
<
VisualState
x:Name
=
"SelectedUnfocused"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Duration
=
"0"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"Background_Over"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"BorderBrush"
Storyboard.TargetName
=
"Background_Over"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
SolidColorBrush
Color
=
"#FFC8C8C8"
/>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Background"
Storyboard.TargetName
=
"BackgroundInner_Over"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
SolidColorBrush
Color
=
"#FFF0F0F0"
/>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"BorderBrush"
Storyboard.TargetName
=
"BackgroundInner_Over"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
SolidColorBrush
Color
=
"White"
/>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"CommonStates"
>
<
VisualState
x:Name
=
"Normal"
/>
<
VisualState
x:Name
=
"MouseOver"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Duration
=
"0"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"Background_Over"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Selected"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Duration
=
"0"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"Background_Selected"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Background"
Storyboard.TargetName
=
"NavigatorIndicatorBackground"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"White"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#FFE4E4E4"
Offset
=
"1"
/>
</
LinearGradientBrush
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"ValueStates"
>
<
VisualState
x:Name
=
"RowValid"
/>
<
VisualState
x:Name
=
"RowInvalid"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"Background_Invalid"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"ErrorIndicator"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"EditStates"
>
<
VisualState
x:Name
=
"ReadOnlyMode"
/>
<
VisualState
x:Name
=
"EditMode"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Visibility"
Storyboard.TargetName
=
"EditIndicator"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"InvalidEditMode"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"Background_Invalid"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Visibility"
Storyboard.TargetName
=
"InvalidEditableIndicator"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Visible</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
telerik:SelectiveScrollingGrid
x:Name
=
"grid"
>
<
telerik:SelectiveScrollingGrid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"*"
/>
</
telerik:SelectiveScrollingGrid.ColumnDefinitions
>
<
telerik:SelectiveScrollingGrid.RowDefinitions
>
<
RowDefinition
Height
=
"*"
/>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"Auto"
/>
</
telerik:SelectiveScrollingGrid.RowDefinitions
>
<
Border
x:Name
=
"SelectionBackground"
Background
=
"{TemplateBinding Background}"
Grid.ColumnSpan
=
"2"
Grid.Column
=
"2"
Margin
=
"{TemplateBinding Margin}"
Padding
=
"{TemplateBinding Padding}"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
VerticalAlignment
=
"{TemplateBinding VerticalContentAlignment}"
/>
<
Border
x:Name
=
"Background_Over"
BorderBrush
=
"#FFFFC92B"
BorderThickness
=
"1"
Grid.ColumnSpan
=
"2"
Grid.Column
=
"2"
CornerRadius
=
"1"
Margin
=
"1,1,1,2"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
Visibility
=
"Collapsed"
>
<
Border
x:Name
=
"BackgroundInner_Over"
BorderBrush
=
"White"
BorderThickness
=
"1"
>
<
Border.Background
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFFFFBA3"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#FFFFFBDA"
Offset
=
"0"
/>
</
LinearGradientBrush
>
</
Border.Background
>
</
Border
>
</
Border
>
<
Border
x:Name
=
"Background_Selected"
BorderBrush
=
"#FFFFC92B"
BorderThickness
=
"1"
Grid.ColumnSpan
=
"2"
Grid.Column
=
"2"
CornerRadius
=
"1"
Margin
=
"1,1,1,2"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
Visibility
=
"Collapsed"
>
<
Border
BorderBrush
=
"White"
BorderThickness
=
"1"
>
<
Border.Background
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFFCE79F"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#FFFDD3A8"
/>
</
LinearGradientBrush
>
</
Border.Background
>
</
Border
>
</
Border
>
<
Border
x:Name
=
"Background_Invalid"
BorderBrush
=
"#FFCE7D7D"
BorderThickness
=
"1"
Grid.ColumnSpan
=
"2"
Grid.Column
=
"2"
CornerRadius
=
"1"
Margin
=
"1,1,1,2"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
Visibility
=
"Collapsed"
>
<
Border
BorderThickness
=
"1"
>
<
Border.BorderBrush
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFEBF4FD"
/>
<
GradientStop
Color
=
"#FFDBEAFD"
Offset
=
"1"
/>
</
LinearGradientBrush
>
</
Border.BorderBrush
>
<
Border.Background
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFFCDCDC"
/>
<
GradientStop
Color
=
"#FFFCC1C1"
Offset
=
"1"
/>
</
LinearGradientBrush
>
</
Border.Background
>
</
Border
>
</
Border
>
<
telerik:GridViewToggleButton
x:Name
=
"PART_HierarchyExpandButton"
Grid.Column
=
"2"
IsHitTestVisible
=
"{Binding IsExpandable, RelativeSource={RelativeSource TemplatedParent}}"
IsTabStop
=
"{TemplateBinding IsTabStop}"
IsChecked
=
"{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation
=
"Vertical"
Width
=
"25"
>
<
telerik:GridViewToggleButton.Opacity
>
<
Binding
Path
=
"IsExpandable"
RelativeSource
=
"{RelativeSource TemplatedParent}"
>
<
Binding.Converter
>
<
telerik:BooleanToOpacityConverter
/>
</
Binding.Converter
>
</
Binding
>
</
telerik:GridViewToggleButton.Opacity
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_BlackTheme
/>
</
telerik:StyleManager.Theme
>
<
telerik:GridViewToggleButton.Template
>
<
ControlTemplate
TargetType
=
"{x:Type telerik:GridViewToggleButton}"
>
<
Border
Background
=
"Transparent"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Stretch"
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"CommonStates"
>
<
VisualState
x:Name
=
"Normal"
/>
<
VisualState
x:Name
=
"MouseOver"
/>
<
VisualState
x:Name
=
"Disabled"
/>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"CheckStates"
>
<
VisualState
x:Name
=
"Checked"
>
<
Storyboard
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"plus"
>
<
DiscreteDoubleKeyFrame
KeyTime
=
"0"
Value
=
"0"
/>
</
DoubleAnimationUsingKeyFrames
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"minus"
>
<
DiscreteDoubleKeyFrame
KeyTime
=
"0"
Value
=
"1"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Unchecked"
/>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"FocusStates"
>
<
VisualState
x:Name
=
"Focused"
/>
<
VisualState
x:Name
=
"Unfocused"
/>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
Border
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Background
=
"{TemplateBinding Background}"
HorizontalAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
Height
=
"9"
VerticalAlignment
=
"{TemplateBinding VerticalContentAlignment}"
Width
=
"9"
>
<
Grid
>
<
Path
x:Name
=
"plus"
Data
=
"M1.937,0L2.937,0 2.937,2.0209999 5,2.0209999 5,3.0209999 2.937,3.0209999 2.937,5 1.937,5 1.937,3.0209999 0,3.0209999 0,2.0209999 1.937,2.0209999z"
Fill
=
"Black"
Height
=
"5"
Margin
=
"{TemplateBinding Padding}"
Stretch
=
"Fill"
Stroke
=
"{x:Null}"
Width
=
"5"
/>
<
Rectangle
x:Name
=
"minus"
Fill
=
"Black"
HorizontalAlignment
=
"Center"
Height
=
"1"
Margin
=
"{TemplateBinding Padding}"
Opacity
=
"0"
RadiusY
=
"0"
RadiusX
=
"0"
Stroke
=
"{x:Null}"
VerticalAlignment
=
"Center"
Width
=
"5"
/>
</
Grid
>
</
Border
>
</
Border
>
</
ControlTemplate
>
</
telerik:GridViewToggleButton.Template
>
<
telerik:GridViewToggleButton.Visibility
>
<
Binding
Path
=
"HasHierarchy"
RelativeSource
=
"{RelativeSource TemplatedParent}"
>
<
Binding.Converter
>
<
telerik:BooleanToVisibilityConverter
/>
</
Binding.Converter
>
</
Binding
>
</
telerik:GridViewToggleButton.Visibility
>
</
telerik:GridViewToggleButton
>
<
Border
Grid.Column
=
"2"
telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation
=
"Vertical"
>
<
Border.Visibility
>
<
Binding
Path
=
"HasHierarchy"
RelativeSource
=
"{RelativeSource TemplatedParent}"
>
<
Binding.Converter
>
<
telerik:BooleanToVisibilityConverter
/>
</
Binding.Converter
>
</
Binding
>
</
Border.Visibility
>
</
Border
>
<
telerik:DataCellsPresenter
x:Name
=
"PART_DataCellsPresenter"
Grid.Column
=
"3"
IsTabStop
=
"False"
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_BlackTheme
/>
</
telerik:StyleManager.Theme
>
</
telerik:DataCellsPresenter
>
<
Border
x:Name
=
"PART_RowBorder"
BorderBrush
=
"{TemplateBinding HorizontalGridLinesBrush}"
Grid.ColumnSpan
=
"4"
Grid.Column
=
"1"
Grid.RowSpan
=
"4"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
VerticalAlignment
=
"Bottom"
>
<
Border.BorderThickness
>
<
Binding
ConverterParameter
=
"Bottom"
Path
=
"HorizontalGridLinesWidth"
RelativeSource
=
"{RelativeSource TemplatedParent}"
>
<
Binding.Converter
>
<
telerik:GridLineWidthToThicknessConverter
/>
</
Binding.Converter
>
</
Binding
>
</
Border.BorderThickness
>
</
Border
>
<
Border
BorderBrush
=
"#FF848484"
BorderThickness
=
"0,1"
Background
=
"#FFBBBBBB"
Grid.ColumnSpan
=
"2"
Grid.Column
=
"2"
Padding
=
"6"
Grid.Row
=
"2"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
>
<
Border.Visibility
>
<
Binding
Path
=
"IsExpanded"
RelativeSource
=
"{RelativeSource TemplatedParent}"
>
<
Binding.Converter
>
<
telerik:BooleanToVisibilityConverter
/>
</
Binding.Converter
>
</
Binding
>
</
Border.Visibility
>
<
ContentPresenter
x:Name
=
"PART_HierarchyChildPresenter"
ContentTemplate
=
"{TemplateBinding ContentTemplate}"
Content
=
"{TemplateBinding Content}"
ContentStringFormat
=
"{TemplateBinding ContentStringFormat}"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
/>
</
Border
>
<
telerik:DetailsPresenter
x:Name
=
"PART_DetailsPresenter"
Grid.ColumnSpan
=
"2"
Grid.Column
=
"2"
DetailsProvider
=
"{TemplateBinding DetailsProvider}"
IsTabStop
=
"False"
Grid.Row
=
"1"
telerik:SelectiveScrollingGrid.SelectiveScrollingClip
=
"True"
Visibility
=
"Collapsed"
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_BlackTheme
/>
</
telerik:StyleManager.Theme
>
</
telerik:DetailsPresenter
>
<
telerik:IndentPresenter
x:Name
=
"PART_IndentPresenter"
Grid.Column
=
"1"
IsTabStop
=
"False"
IndentLevel
=
"{TemplateBinding IndentLevel}"
Grid.RowSpan
=
"4"
telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation
=
"Vertical"
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_BlackTheme
/>
</
telerik:StyleManager.Theme
>
</
telerik:IndentPresenter
>
<
Border
x:Name
=
"PART_IndicatorPresenter"
BorderBrush
=
"#FF848484"
BorderThickness
=
"0,0,1,1"
Grid.Column
=
"0"
Grid.RowSpan
=
"3"
telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation
=
"Vertical"
Visibility
=
"{TemplateBinding RowIndicatorVisibility}"
VerticalAlignment
=
"Stretch"
Width
=
"25"
>
<
Grid
>
<
Border
x:Name
=
"NavigatorIndicatorBackground"
BorderBrush
=
"White"
BorderThickness
=
"1"
Background
=
"#FFE4E4E4"
>
<
Grid
x:Name
=
"GridIndicatorPresenter"
>
<
Grid
x:Name
=
"NavigatorIndicator"
HorizontalAlignment
=
"Center"
Height
=
"11"
Visibility
=
"Collapsed"
VerticalAlignment
=
"Center"
Width
=
"11"
>
<
Path
Data
=
"F1M32.0234,6.66669L24.2923,0.0248413 28.3697,0.0248413 32,3.14362 36.1492,6.70819 32,10.2728 28.4664,13.3085 24.2923,13.3085 32.0234,6.66669z"
Fill
=
"#FF848484"
HorizontalAlignment
=
"Center"
Height
=
"8"
Margin
=
"0"
Stretch
=
"Fill"
VerticalAlignment
=
"Center"
Width
=
"8"
/>
</
Grid
>
<
Grid
x:Name
=
"EditIndicator"
HorizontalAlignment
=
"Center"
Height
=
"10"
Visibility
=
"Collapsed"
VerticalAlignment
=
"Center"
Width
=
"16"
>
<
Path
Data
=
"M14,9L15,9 15,10 14,10z M1,9L2,9 2,10 1,10z M15,8L16,8 16,9 15,9z M0,8L1,8 1,9 0,9z M15,1L16,1 16,2 15,2z M0,1L1,1 1,2 0,2z M14,0L15,0 15,1 14,1z M1,0L2,0 2,1 1,1z"
Fill
=
"#7F848484"
Stretch
=
"Fill"
/>
<
Path
Data
=
"M0.99999994,6.9999995L2,6.9999995 3,6.9999995 4,6.9999995 5,6.9999995 6,6.9999995 7,6.9999995 8,6.9999995 9,6.9999995 10,6.9999995 11,6.9999995 12,6.9999995 13,6.9999995 13,7.9999995 12,7.9999995 11,7.9999995 10,7.9999995 9,7.9999995 8,7.9999995 7,7.9999995 6,7.9999995 5,7.9999995 4,7.9999995 3,7.9999995 2,7.9999995 0.99999994,7.9999995z M13,0.99999994L14,0.99999994 14,1.9999999 14,2.9999995 14,3.9999995 14,4.9999995 14,5.9999995 14,6.9999995 13,6.9999995 13,5.9999995 13,4.9999995 13,3.9999995 13,2.9999995 13,1.9999999z M0,0.99999994L0.99999994,0.99999994 0.99999994,1.9999999 0.99999994,2.9999995 0.99999994,3.9999995 0.99999994,4.9999995 0.99999994,5.9999995 0.99999994,6.9999995 0,6.9999995 0,5.9999995 0,4.9999995 0,3.9999995 0,2.9999995 0,1.9999999z M11,0L12,0 13,0 13,0.99999994 12,0.99999994 11,0.99999994 10,0.99999994 9,0.99999994 8,0.99999994 7,0.99999994 6,0.99999994 5,0.99999994 4,0.99999994 3,0.99999994 2,0.99999994 0.99999994,0.99999994 0.99999994,2.3841858E-07 2,2.3841858E-07 3,2.3841858E-07 4,2.3841858E-07 5,2.3841858E-07 6,2.3841858E-07 7,2.3841858E-07 8,2.3841858E-07 9,2.3841858E-07 10,2.3841858E-07z"
Fill
=
"#FFCBCBCB"
Margin
=
"1"
Stretch
=
"Fill"
/>
<
Path
Data
=
"M2,9L3,9 4,9 5,9 6,9 7,9 8,9 9,9 10,9 11,9 12,9 13,9 14,9 14,10 13,10 12,10 11,10 10,10 9,10 8,10 7,10 6,10 5,10 4,10 3,10 2,10z M14,8L15,8 15,9 14,9z M1,8L2,8 2,9 1,9z M15,2L16,2 16,3 16,4 16,5 16,6 16,7 16,8 15,8 15,7 15,6 15,5 15,4 15,3z M3,2L4,2 5,2 6,2 6,3 5,3 5,4 5,5 5,6 5,7 6,7 6,8 5,8 4,8 3,8 3,7 4,7 4,6 4,5 4,4 4,3 3,3z M0,2L1,2 1,3 1,4 1,5 1,6 1,7 1,8 0,8 0,7 0,6 0,5 0,4 0,3z M14,1L15,1 15,2 14,2z M1,1L2,1 2,2 1,2z M2,0L3,0 4,0 5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 13,0 14,0 14,1 13,1 12,1 11,1 10,1 9,1 8,1 7,1 6,1 5,1 4,1 3,1 2,1z"
Fill
=
"#FF848484"
Stretch
=
"Fill"
/>
<
Path
Data
=
"M4,0L5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 12,1 12,2 12,3 12,4 12,5.0000001 12,6 11,6 10,6 9,6 8,6 7,6 6,6 5,6 4,6 4,5.0000001 3,5.0000001 3,4 3,3 3,2 3,1 4,1z M0,0L1,0 1,1 2,1 2,2 2,3 2,4 2,5.0000001 1,5.0000001 1,6 0,6 0,5.0000001 0,4 0,3 0,2 0,1z"
Fill
=
"White"
Margin
=
"2"
Stretch
=
"Fill"
/>
</
Grid
>
<
Grid
x:Name
=
"InvalidEditableIndicator"
Background
=
"Transparent"
Visibility
=
"Collapsed"
>
<
Grid.ToolTip
>
<
ToolTip
Content
=
"{TemplateBinding Errors}"
Placement
=
"Bottom"
>
<
ToolTip.Template
>
<
ControlTemplate
TargetType
=
"{x:Type ToolTip}"
>
<
Grid
x:Name
=
"Root"
Margin
=
"5,0"
Opacity
=
"0"
RenderTransformOrigin
=
"0,0"
>
<
Grid.RenderTransform
>
<
TranslateTransform
X
=
"-25"
/>
</
Grid.RenderTransform
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"OpenStates"
>
<
VisualStateGroup.Transitions
>
<
VisualTransition
From
=
"{x:Null}"
GeneratedDuration
=
"0"
GeneratedEasingFunction
=
"{x:Null}"
Storyboard
=
"{x:Null}"
To
=
"{x:Null}"
/>
<
VisualTransition
From
=
"{x:Null}"
GeneratedDuration
=
"0:0:0.2"
GeneratedEasingFunction
=
"{x:Null}"
To
=
"Open"
>
<
Storyboard
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"X"
Storyboard.TargetName
=
"xform"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0:0:0.2"
Value
=
"0"
/>
</
DoubleAnimationUsingKeyFrames
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"Root"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0:0:0.2"
Value
=
"1"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualTransition
>
</
VisualStateGroup.Transitions
>
<
VisualState
x:Name
=
"Closed"
>
<
Storyboard
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"Root"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0"
Value
=
"0"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Open"
>
<
Storyboard
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"X"
Storyboard.TargetName
=
"xform"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0"
Value
=
"0"
/>
</
DoubleAnimationUsingKeyFrames
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"Root"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0"
Value
=
"1"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
ItemsControl
>
<
ItemsControl.ItemsPanel
>
<
ItemsPanelTemplate
>
<
StackPanel
IsItemsHost
=
"True"
/>
</
ItemsPanelTemplate
>
</
ItemsControl.ItemsPanel
>
<
ItemsControl.ItemTemplate
>
<
DataTemplate
>
<
Border
BorderBrush
=
"#FFDC000C"
BorderThickness
=
"1"
CornerRadius
=
"1"
MinHeight
=
"22"
>
<
Border.Background
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFFF424C"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#FFC92931"
/>
</
LinearGradientBrush
>
</
Border.Background
>
<
Border
BorderBrush
=
"White"
BorderThickness
=
"1"
>
<
TextBlock
Foreground
=
"White"
MaxWidth
=
"250"
Margin
=
"4,1"
TextWrapping
=
"Wrap"
Text
=
"{Binding}"
/>
</
Border
>
</
Border
>
</
DataTemplate
>
</
ItemsControl.ItemTemplate
>
</
ItemsControl
>
</
Grid
>
</
ControlTemplate
>
</
ToolTip.Template
>
</
ToolTip
>
</
Grid.ToolTip
>
<
Grid
HorizontalAlignment
=
"Center"
Height
=
"10"
VerticalAlignment
=
"Center"
Width
=
"16"
>
<
Path
Data
=
"M14,9L15,9 15,10 14,10z M1,9L2,9 2,10 1,10z M15,8L16,8 16,9 15,9z M0,8L1,8 1,9 0,9z M15,1L16,1 16,2 15,2z M0,1L1,1 1,2 0,2z M14,0L15,0 15,1 14,1z M1,0L2,0 2,1 1,1z"
Fill
=
"#7FFD0000"
Stretch
=
"Fill"
/>
<
Path
Data
=
"M0.99999994,6.9999995L2,6.9999995 3,6.9999995 4,6.9999995 5,6.9999995 6,6.9999995 7,6.9999995 8,6.9999995 9,6.9999995 10,6.9999995 11,6.9999995 12,6.9999995 13,6.9999995 13,7.9999995 12,7.9999995 11,7.9999995 10,7.9999995 9,7.9999995 8,7.9999995 7,7.9999995 6,7.9999995 5,7.9999995 4,7.9999995 3,7.9999995 2,7.9999995 0.99999994,7.9999995z M13,0.99999994L14,0.99999994 14,1.9999999 14,2.9999995 14,3.9999995 14,4.9999995 14,5.9999995 14,6.9999995 13,6.9999995 13,5.9999995 13,4.9999995 13,3.9999995 13,2.9999995 13,1.9999999z M0,0.99999994L0.99999994,0.99999994 0.99999994,1.9999999 0.99999994,2.9999995 0.99999994,3.9999995 0.99999994,4.9999995 0.99999994,5.9999995 0.99999994,6.9999995 0,6.9999995 0,5.9999995 0,4.9999995 0,3.9999995 0,2.9999995 0,1.9999999z M11,0L12,0 13,0 13,0.99999994 12,0.99999994 11,0.99999994 10,0.99999994 9,0.99999994 8,0.99999994 7,0.99999994 6,0.99999994 5,0.99999994 4,0.99999994 3,0.99999994 2,0.99999994 0.99999994,0.99999994 0.99999994,2.3841858E-07 2,2.3841858E-07 3,2.3841858E-07 4,2.3841858E-07 5,2.3841858E-07 6,2.3841858E-07 7,2.3841858E-07 8,2.3841858E-07 9,2.3841858E-07 10,2.3841858E-07z"
Fill
=
"#FFFCC1C1"
Margin
=
"1"
Stretch
=
"Fill"
/>
<
Path
Data
=
"M2,9L3,9 4,9 5,9 6,9 7,9 8,9 9,9 10,9 11,9 12,9 13,9 14,9 14,10 13,10 12,10 11,10 10,10 9,10 8,10 7,10 6,10 5,10 4,10 3,10 2,10z M14,8L15,8 15,9 14,9z M1,8L2,8 2,9 1,9z M15,2L16,2 16,3 16,4 16,5 16,6 16,7 16,8 15,8 15,7 15,6 15,5 15,4 15,3z M3,2L4,2 5,2 6,2 6,3 5,3 5,4 5,5 5,6 5,7 6,7 6,8 5,8 4,8 3,8 3,7 4,7 4,6 4,5 4,4 4,3 3,3z M0,2L1,2 1,3 1,4 1,5 1,6 1,7 1,8 0,8 0,7 0,6 0,5 0,4 0,3z M14,1L15,1 15,2 14,2z M1,1L2,1 2,2 1,2z M2,0L3,0 4,0 5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 13,0 14,0 14,1 13,1 12,1 11,1 10,1 9,1 8,1 7,1 6,1 5,1 4,1 3,1 2,1z"
Fill
=
"Red"
Stretch
=
"Fill"
/>
<
Path
Data
=
"M4,0L5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 12,1 12,2 12,3 12,4 12,5.0000001 12,6 11,6 10,6 9,6 8,6 7,6 6,6 5,6 4,6 4,5.0000001 3,5.0000001 3,4 3,3 3,2 3,1 4,1z M0,0L1,0 1,1 2,1 2,2 2,3 2,4 2,5.0000001 1,5.0000001 1,6 0,6 0,5.0000001 0,4 0,3 0,2 0,1z"
Fill
=
"White"
Margin
=
"2"
Stretch
=
"Fill"
/>
</
Grid
>
</
Grid
>
<
Grid
x:Name
=
"ErrorIndicator"
HorizontalAlignment
=
"Center"
Height
=
"16"
Visibility
=
"Collapsed"
VerticalAlignment
=
"Center"
Width
=
"16"
>
<
Grid.ToolTip
>
<
ToolTip
x:Name
=
"validationTooltip"
Content
=
"{TemplateBinding Errors}"
Placement
=
"Bottom"
>
<
ToolTip.Template
>
<
ControlTemplate
TargetType
=
"{x:Type ToolTip}"
>
<
Grid
x:Name
=
"Root"
Margin
=
"5,0"
Opacity
=
"0"
RenderTransformOrigin
=
"0,0"
>
<
Grid.RenderTransform
>
<
TranslateTransform
X
=
"-25"
/>
</
Grid.RenderTransform
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"OpenStates"
>
<
VisualStateGroup.Transitions
>
<
VisualTransition
From
=
"{x:Null}"
GeneratedDuration
=
"0"
GeneratedEasingFunction
=
"{x:Null}"
Storyboard
=
"{x:Null}"
To
=
"{x:Null}"
/>
<
VisualTransition
From
=
"{x:Null}"
GeneratedDuration
=
"0:0:0.2"
GeneratedEasingFunction
=
"{x:Null}"
To
=
"Open"
>
<
Storyboard
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"X"
Storyboard.TargetName
=
"xform"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0:0:0.2"
Value
=
"0"
/>
</
DoubleAnimationUsingKeyFrames
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"Root"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0:0:0.2"
Value
=
"1"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualTransition
>
</
VisualStateGroup.Transitions
>
<
VisualState
x:Name
=
"Closed"
>
<
Storyboard
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"Root"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0"
Value
=
"0"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Open"
>
<
Storyboard
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"X"
Storyboard.TargetName
=
"xform"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0"
Value
=
"0"
/>
</
DoubleAnimationUsingKeyFrames
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"Opacity"
Storyboard.TargetName
=
"Root"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0"
Value
=
"1"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
ItemsControl
>
<
ItemsControl.ItemsPanel
>
<
ItemsPanelTemplate
>
<
StackPanel
IsItemsHost
=
"True"
/>
</
ItemsPanelTemplate
>
</
ItemsControl.ItemsPanel
>
<
ItemsControl.ItemTemplate
>
<
DataTemplate
>
<
Border
BorderBrush
=
"#FFDC000C"
BorderThickness
=
"1"
CornerRadius
=
"1"
MinHeight
=
"22"
>
<
Border.Background
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFFF424C"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#FFC92931"
/>
</
LinearGradientBrush
>
</
Border.Background
>
<
Border
BorderBrush
=
"White"
BorderThickness
=
"1"
>
<
TextBlock
Foreground
=
"White"
MaxWidth
=
"250"
Margin
=
"4,1"
TextWrapping
=
"Wrap"
Text
=
"{Binding}"
/>
</
Border
>
</
Border
>
</
DataTemplate
>
</
ItemsControl.ItemTemplate
>
</
ItemsControl
>
</
Grid
>
</
ControlTemplate
>
</
ToolTip.Template
>
</
ToolTip
>
</
Grid.ToolTip
>
<
Path
Data
=
"M3,12.999999L4,12.999999 5,12.999999 6,12.999999 7,12.999999 8,12.999999 9,12.999999 10,12.999999 11,12.999999 11,13.999999 10,13.999999 9,13.999999 8,13.999999 7,13.999999 6,13.999999 5,13.999999 4,13.999999 3,13.999999z M11,11.999999L12,11.999999 12,12.999999 11,12.999999z M2.0000001,11.999999L3,11.999999 3,12.999999 2.0000001,12.999999z M12,10.999999L13,10.999999 13,11.999999 12,11.999999z M1,10.999999L2.0000001,10.999999 2.0000001,11.999999 1,11.999999z M13,2.9999992L14,2.9999992 14,3.9999992 14,4.9999992 14,5.9999992 14,6.9999992 14,7.9999992 14,8.9999992 14,9.9999992 14,10.999999 13,10.999999 13,9.9999992 13,8.9999992 13,7.9999992 13,6.9999992 13,5.9999992 13,4.9999992 13,3.9999992z M0,2.9999992L1,2.9999992 1,3.9999992 1,4.9999992 1,5.9999992 1,6.9999992 1,7.9999992 1,8.9999992 1,9.9999992 1,10.999999 0,10.999999 0,9.9999992 0,8.9999992 0,7.9999992 0,6.9999992 0,5.9999992 0,4.9999992 0,3.9999992z M12,1.9999999L13,1.9999999 13,2.9999992 12,2.9999992z M1,1.9999999L2.0000001,1.9999999 2.0000001,2.9999992 1,2.9999992z M11,0.99999994L12,0.99999994 12,1.9999999 11,1.9999999z M2.0000001,0.99999994L2.9999998,0.99999994 2.9999998,1.9999999 2.0000001,1.9999999z M2.9999998,0L3.9999998,0 5,0 6,0 7,0 8,0 9,0 10,0 11,0 11,0.99999994 10,0.99999994 9,0.99999994 8,0.99999994 7,0.99999994 6,0.99999994 5,0.99999994 3.9999998,0.99999994 2.9999998,0.99999994z"
Margin
=
"1"
Stretch
=
"Fill"
>
<
Path.Fill
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFFC9999"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#FFC26666"
Offset
=
"1"
/>
</
LinearGradientBrush
>
</
Path.Fill
>
</
Path
>
<
Path
Data
=
"M1.4901161E-07,8L1.0000001,8 2.0000002,8 2.0000002,9 2.0000002,10 1.0000003,10 1.0000003,9 1.0000001,10 1.4901161E-07,10 1.4901161E-07,9z M1.4901161E-07,0L1.0000001,0 2.0000002,0 2.0000002,1 2.0000002,2 2.0000002,3 2.0000002,4.0000001 2.0000002,5 2.0000002,5.9999999 2.0000002,7 1.0000001,7 1.4901161E-07,7 1.4901161E-07,5.9999999 1.4901161E-07,5 1.4901161E-07,4.0000001 1.4901161E-07,3 1.4901161E-07,2 0,1z"
Fill
=
"White"
Margin
=
"7,3"
Stretch
=
"Fill"
/>
<
Path
Data
=
"M4,15L5,15 6,15 7,15 8,15 9,15 10,15 11,15 12,15 12,16 11,16 10,16 9,16 8,16 7,16 6,16 5,16 4,16z M12,14L13,14 13,15 12,15z M3,14L4,14 4,15 3,15z M13,13L14,13 14,14 13,14z M2,13L3,13 3,14 2,14z M14,12L15,12 15,13 14,13z M1,12L2,12 2,13 1,13z M7,11L7,12 7,13 8,13 9,13 9,12 9,11 8,11z M15,4L16,4 16,5 16,6 16,7 16,8 16,9 16,10 16,11 16,12 15,12 15,11 15,10 15,9 15,8 15,7 15,6 15,5z M0,4L1,4 1,5 1,6 1,7 1,8 1,9 1,10 1,11 1,12 0,12 0,11 0,10 0,9 0,8 0,7 0,6 0,5z M14,3L15,3 15,4 14,4z M7,3L7,4 7,5 7,6 7,7 7,8 7,9 7,10 8,10 9,10 9,9 9,8 9,7 9,6 9,5 9,4 9,3 8,3z M1,3L2,3 2,4 1,4z M13,2L14,2 14,3 13,3z M4,2L5,2 6,2 7,2 8,2 9,2 10,2 11,2 12,2 12,3 13,3 13,4 14,4 14,5 14,6 14,7 14,8 14,9 14,10 14,11 14,12 13,12 13,13 12,13 12,14 11,14 10,14 9,14 8,14 7,14 6,14 5,14 4,14 4,13 3,13 3,12 2,12 2,11 2,10 2,9 2,8 2,7 2,6 2,5 2,4 3,4 3,3 4,3z M2,2L3,2 3,3 2,3z M12,1L13,1 13,2 12,2z M3,1L4,1 4,2 3,2z M4,0L5,0 6,0 7,0 8,0 9,0 10,0 11,0 12,0 12,1 11,1 10,1 9,1 8,1 7,1 6,1 5,1 4,1z"
Stretch
=
"Fill"
>
<
Path.Fill
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"Red"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#FF990000"
Offset
=
"1"
/>
</
LinearGradientBrush
>
</
Path.Fill
>
</
Path
>
</
Grid
>
<
Border
x:Name
=
"PART_RowResizer"
Background
=
"Transparent"
Cursor
=
"SizeNS"
Height
=
"2"
VerticalAlignment
=
"Bottom"
/>
</
Grid
>
</
Border
>
<
telerik:GridViewPinButton
x:Name
=
"PinnedRowPresenter"
Background
=
"#FFE4E4E4"
IsBackgroundVisible
=
"True"
InnerCornerRadius
=
"0"
telerik:TouchManager.TouchMode
=
"None"
Visibility
=
"Collapsed"
/>
</
Grid
>
</
Border
>
</
telerik:SelectiveScrollingGrid
>
</
Border
>
<
ControlTemplate.Triggers
>
<
MultiDataTrigger
>
<
MultiDataTrigger.Conditions
>
<
Condition
Binding
=
"{Binding IsEnabled, ElementName=PinnedRowPresenter}"
Value
=
"True"
/>
<
Condition
Binding
=
"{Binding IsMouseOver, ElementName=PART_IndicatorPresenter}"
Value
=
"True"
/>
</
MultiDataTrigger.Conditions
>
<
Setter
Property
=
"Visibility"
TargetName
=
"GridIndicatorPresenter"
Value
=
"Collapsed"
/>
<
Setter
Property
=
"Visibility"
TargetName
=
"PinnedRowPresenter"
Value
=
"Visible"
/>
</
MultiDataTrigger
>
<
MultiDataTrigger
>
<
MultiDataTrigger.Conditions
>
<
Condition
Binding
=
"{Binding IsPinned, RelativeSource={RelativeSource Self}}"
Value
=
"True"
/>
<
Condition
Binding
=
"{Binding IsEnabled, ElementName=PinnedRowPresenter}"
Value
=
"True"
/>
</
MultiDataTrigger.Conditions
>
<
Setter
Property
=
"Visibility"
TargetName
=
"GridIndicatorPresenter"
Value
=
"Collapsed"
/>
<
Setter
Property
=
"Visibility"
TargetName
=
"PinnedRowPresenter"
Value
=
"Visible"
/>
</
MultiDataTrigger
>
</
ControlTemplate.Triggers
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
<
Setter
Property
=
"Background"
Value
=
"White"
/>
<
Setter
Property
=
"BorderBrush"
Value
=
"#FFCBCBCB"
/>
<
Setter
Property
=
"BorderThickness"
Value
=
"0"
/>
<
Setter
Property
=
"AllowDrop"
Value
=
"True"
/>
<
Setter
Property
=
"FontWeight"
Value
=
"Normal"
/>
<
Setter
Property
=
"VerticalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"HorizontalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"Padding"
Value
=
"0"
/>
<
Setter
Property
=
"SnapsToDevicePixels"
Value
=
"True"
/>
</
Style
>
If I now run my application it looks the same as before, In the grid a add a row that has validation errors. If I hover over the error indicator, I get an error saying it is missing 'xform'.
So I edited a part
Before:
<
Grid.RenderTransform
>
<
TranslateTransform
X
=
"-25"
/>
</
Grid.RenderTransform
>
After:
<
Grid.RenderTransform
>
<
TranslateTransform
x:Name
=
"xform"
X
=
"-25"
/>
</
Grid.RenderTransform
>
I no longer get the error in my application but the error tooltip is also not show. So there seems to be a problem with copying the template but I can not really figure out where it is.
Hi All
I have a WPF RadComboBox within a RadDataForm as per below - however whenever I press "insert" on my keyboard the data on the form disappears.
I have tried to handle the "Insert" keypress in the keydown and keyup events but to no avail, it doesn't drop in there - I need to be prevent the form data from disappearing when the insert key is pressed.
Is there a way to disable a certain key from being pressed?
Please help ASAP.
Ram
<
telerik:RadDataForm.EditTemplate
>
<
DataTemplate
>
<
Grid
>
<
StackPanel
Margin
=
"10,10,30,10"
>
<!--<
telerik:DataFormDataField
DataMemberBinding
=
"{Binding Name,Mode=TwoWay}"
Label
=
"Name"
FontWeight
=
"Bold"
IsEnabled
=
"True"
Width
=
"580"
LostFocus
=
"event_OnIngredientNameLostFocus"
>
</
telerik:DataFormDataField
>-->
<
StackPanel
Orientation
=
"Horizontal"
Margin
=
"0,0,0,10"
>
<
TextBlock
KeyDown
=
"RadComboBox_KeyDown"
FontWeight
=
"Bold"
Margin
=
"10,0,0,0"
Text
=
"Name"
Width
=
"180"
/>
<
telerik:RadComboBox
ItemsSource
=
"{Binding Glossary}"
SelectionChanged
=
"event_OnIngredientNameSelectionChanged"
HorizontalAlignment
=
"Stretch"
HorizontalContentAlignment
=
"Left"
LostFocus
=
"event_OnIngredientNameLostFocus"
Text
=
"{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
VerticalAlignment
=
"Top"
KeyDown
=
"RadComboBox_KeyDown"
KeyUp
=
"RadComboBox_KeyUp"
IsTextSearchEnabled
=
"True"
IsEditable
=
"True"
Width
=
"355"
>
<
telerik:RadComboBox.ToolTip
>
<
Border
BorderThickness
=
"1"
BorderBrush
=
"{StaticResource ThemeAccent}"
>
<
Grid
Background
=
"#FFF3C6"
MaxWidth
=
"260"
MinWidth
=
"100"
Height
=
"Auto"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"1"
/>
<
RowDefinition
Height
=
"Auto"
/>
</
Grid.RowDefinitions
>
<
TextBlock
Margin
=
"3"
TextOptions.TextFormattingMode
=
"Display"
Text
=
"Ingredient Name"
TextTrimming
=
"CharacterEllipsis"
TextWrapping
=
"NoWrap"
Height
=
"Auto"
FontSize
=
"14"
FontWeight
=
"SemiBold"
HorizontalAlignment
=
"Left"
/>
<
Rectangle
Grid.Row
=
"1"
Height
=
"1"
HorizontalAlignment
=
"Stretch"
Margin
=
"3,0"
Fill
=
"{StaticResource ThemeStripe}"
/>
<
TextBlock
Margin
=
"3"
TextOptions.TextFormattingMode
=
"Display"
TextAlignment
=
"Left"
Grid.Row
=
"2"
Text
=
"Start typing to select the ingredient or additive name from the glossary"
TextWrapping
=
"Wrap"
Height
=
"Auto"
FontSize
=
"12"
FontWeight
=
"Normal"
HorizontalAlignment
=
"Left"
/>
</
Grid
>
</
Border
>
</
telerik:RadComboBox.ToolTip
>
<
telerik:RadComboBox.ItemsPanel
>
<
ItemsPanelTemplate
>
<
VirtualizingStackPanel
/>
</
ItemsPanelTemplate
>
</
telerik:RadComboBox.ItemsPanel
>
</
telerik:RadComboBox
>
</
StackPanel
>
<
telerik:DataFormDataField
DataMemberBinding
=
"{Binding RefCode,Mode=TwoWay}"
Label
=
"Ref Code"
IsEnabled
=
"True"
Width
=
"580"
>
</
telerik:DataFormDataField
>
</
StackPanel
>
</
Grid
>
</
DataTemplate
>
</
telerik:RadDataForm.EditTemplate
>
</
telerik:RadDataForm
>