<ResourceDictionary>
<local:ImageTypeConverter x:Key="imageTypeConverter"></local:ImageTypeConverter><local:ContainsKeywordsIconConverter x:Key="containsKeywordsIconConverter"></local:ContainsKeywordsIconConverter> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Themes/Resources/Dictionaries/FilteringControlStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<telerik:GridViewDataColumn Header="Date" UniqueName="Date" DataMemberBinding="{Binding DateCreation}" HeaderCellStyle="{StaticResource CustomHeaderCell}">
<telerik:GridViewDataColumn.FilteringControl > <telerik:FilteringControl ></telerik:FilteringControl> </telerik:GridViewDataColumn.FilteringControl> </telerik:GridViewDataColumn><Border Margin="0,2,0,0" BorderBrush="#FF848484" BorderThickness="1,1,1,1" CornerRadius="1">
<Border Background="#FFE4E4E4" BorderBrush="White" BorderThickness="1">
<StackPanel HorizontalAlignment="Stretch" Margin="5,5,5,5" MaxWidth="350" MinWidth="200" VerticalAlignment="Stretch">
<StackPanel x:Name="PART_DistinctFilter" Visibility="Visible">
........Up to the end,

Did you have any control that provides above features ?
Regards,
Srinivas
<Style TargetType="local:TngMenuBar">
<Setter Property="Background"
Value="White" />
<Setter Property="Foreground"
Value="Black" />
<Setter Property="BorderBrush"
Value="Black" />
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:TngMenuBar">
<ControlsNavigation:RadMenu Name="PART_TngMenuBar"
DataContext="{TemplateBinding Property=DataContext}"
ItemsSource="{Binding ItemsSource, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
ItemTemplate="{TemplateBinding Property=ItemTemplate}"
ItemTemplateSelector="{TemplateBinding Property=ItemTemplateSelector}"
ItemContainerStyle="{TemplateBinding Property=ItemContainerStyle}"
ItemContainerStyleSelector="{TemplateBinding Property=ItemContainerStyleSelector}"
FontSize="{TemplateBinding Property=FontSize}"
FontStyle="{TemplateBinding Property=FontStyle}"
Foreground="{TemplateBinding Property=Foreground}"
ClickToOpen="{TemplateBinding Property=ClickToOpen}"
ShowDelay="{TemplateBinding Property=ShowDelay}"
HideDelay="{TemplateBinding Property=HideDelay}"
Orientation="{TemplateBinding Property=Orientation}"
>
</ControlsNavigation:RadMenu>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="local:TngMenuItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:TngMenuItem">
<ControlsNavigation:RadMenuItem Name="PART_TngMenuBarItem"
Header="{TemplateBinding Property=Header}"
></ControlsNavigation:RadMenuItem>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
public class TngMenuBar : Control
{
#region
Constructors
public TngMenuBar()
{
DefaultStyleKey =
typeof(TngMenuBar);
Items =
new TngMenuBarItemCollection();
}
#endregion
public static DependencyProperty ItemsProperty = DependencyProperty.Register(
"Items",
typeof(TngMenuBarItemCollection),
typeof(TngMenuBar),
null);
public TngMenuBarItemCollection Items
{
get { return this.GetValue(ItemsProperty) as TngMenuBarItemCollection; }
set { this.SetValue(ItemsProperty, value); }
}
 
public event RoutedEventHandler ItemClick;
void TngMenu_MouseLeftButtonUp(object sender,
MouseButtonEventArgs e)
{
if (ItemClick != null)
ItemClick(
this, new RoutedEventArgs());
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
RadMenu menu = this.GetTemplateChild("PART_TngMenuBar") as RadMenu;
if (menu == null)
return;
for (int i = 0; i < this.Items.Count; i++)
{
TngMenuItem menuItem = this.Items[i];
menu.Items.Add(menuItem);
}
}
#region
Property: DataContext
private Object _dataContext;
public Object DataContext
{
get { return GetValue(DataContextProperty); }
set { SetValue(DataContextProperty, value); }
}
public static readonly DependencyProperty DataContextProperty =
DependencyProperty.Register(
"DataContext", typeof(Object), typeof(TngMenuBar),
new PropertyMetadata((o, e) =>
{
((
TngMenuBar)o).UpdateDataContext((Object)e.NewValue);
}));
 
private void UpdateDataContext(Object sel)
{
_dataContext = sel;
}
#endregion
#region
Property: ItemsSource
private IEnumerable _itemsSource;
public IEnumerable ItemsSource
{
get { return (IEnumerable)GetValue(ItemsSourceProperty); }
set { SetValue(ItemsSourceProperty, value); }
}
public static readonly DependencyProperty ItemsSourceProperty =
DependencyProperty.Register(
"ItemsSource", typeof(IEnumerable), typeof(TngMenuBar),
new PropertyMetadata((o, e) =>
{
((
TngMenuBar)o).UpdateItemsSource((IEnumerable)e.NewValue);
}));
private void UpdateItemsSource(IEnumerable sel)
{
_itemsSource = sel;
}
#endregion
#region
Property: ItemTemplate
private DataTemplate _itemTemplate;
public DataTemplate ItemTemplate
{
get { return (DataTemplate)GetValue(ItemTemplateProperty); }
set { SetValue(ItemTemplateProperty, value); }
}
public static readonly DependencyProperty ItemTemplateProperty =
DependencyProperty.Register(
"ItemTemplate", typeof(DataTemplate), typeof(TngMenuBar),
new PropertyMetadata((o, e) =>
{
((
TngMenuBar)o).UpdateItemTemplate((DataTemplate)e.NewValue);
}));
private void UpdateItemTemplate(DataTemplate sel)
{
_itemTemplate = sel;
}
#endregion
#region
Property: ItemTemplateSelector
private DataTemplateSelector _itemTemplateSelector;
public DataTemplateSelector ItemTemplateSelector
{
get { return (DataTemplateSelector)GetValue(ItemTemplateSelectorProperty); }
set { SetValue(ItemTemplateSelectorProperty, value); }
}
public static readonly DependencyProperty ItemTemplateSelectorProperty =
DependencyProperty.Register(
"ItemTemplateSelector", typeof(DataTemplateSelector), typeof(TngMenuBar),
new PropertyMetadata((o, e) =>
{
((
TngMenuBar)o).UpdateItemTemplateSelector((DataTemplateSelector)e.NewValue);
}));
private void UpdateItemTemplateSelector(DataTemplateSelector sel)
{
_itemTemplateSelector = sel;
}
#endregion
#region
Property: ItemContainerStyle
private Style _itemContainerStyle;
public Style ItemContainerStyle
{
get { return (Style)GetValue(ItemContainerStyleProperty); }
set { SetValue(ItemContainerStyleProperty, value); }
}
public static readonly DependencyProperty ItemContainerStyleProperty =
DependencyProperty.Register(
"ItemContainerStyle", typeof(Style), typeof(TngMenuBar),
new PropertyMetadata((o, e) =>
{
((
TngMenuBar)o).UpdateItemContainerStyle((Style)e.NewValue);
}));
private void UpdateItemContainerStyle(Style sel)
{
_itemContainerStyle = sel;
}
#endregion
Below is the code snippet for our custom control MenuItem.cs code......
public class TngMenuItem:ContentControl
{
#region
Constructors
public TngMenuItem()
{
DefaultStyleKey =
typeof(TngMenuItem);
Items =
new TngMenuBarItemCollection();
}
#endregion
public static DependencyProperty ItemsProperty = DependencyProperty.Register(
"Items",
typeof(TngMenuBarItemCollection),
typeof(TngMenuItem),
null);
public TngMenuBarItemCollection Items
{
get { return this.GetValue(ItemsProperty) as TngMenuBarItemCollection; }
set { this.SetValue(ItemsProperty, value); }
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
RadMenuItem menuitem = this.GetTemplateChild("PART_TngMenuBarItem") as RadMenuItem;
if (menuitem == null)
return;
for (int i = 0; i < this.Items.Count; i++)
{
TngMenuItem cmi = this.Items[i];
menuitem.Items.Add(cmi);
}
}
 
#region
Property: Header
private Object _header;
public virtual Object Header
{
get { return GetValue(HeaderProperty); }
set { SetValue(HeaderProperty, value); }
}
public static readonly DependencyProperty HeaderProperty =
DependencyProperty.Register(
"Header", typeof(Object), typeof(TngMenuItem),
new PropertyMetadata((o, e) =>
{
((
TngMenuItem)o).UpdateHeader((Object)e.NewValue);
}));
private void UpdateHeader(Object sel)
{
_header = sel;
}
#endregion
Below is the code snippet for our custom control MenuItemcollection.cs code......
public class TngMenuBarItemCollection : ObservableCollection<TngMenuItem>
{
}

I have following column amongst other columns:
...
<grid:GridViewDataColumn IsReadOnly="False" IsSortable="False" Header="Comment"
DataMemberBinding="{Binding Comment}" MaxWidth="250" IsResizable="False" >
<grid:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<TextBox Text="{Binding Comment}" MaxLength="50" />
</DataTemplate>
</grid:GridViewDataColumn.CellEditTemplate>
</grid:GridViewDataColumn>
...
Issue:
When there is more than one row in the grid, editing of this cell can be ended in whatever way (by focusing on some other field, pressing enter... etc.) and the grid will retain the value entered. Such value will also be updated into the database by:
private
void radGridView1_CellEditEnded(object sender, GridViewCellEditEndedEventArgs e)
{...}
However, when there is only one row in the grid, pressing enter to end the cell edit works for retaining the value just entered for the cell but not triggering "CellEditEnded". Therefore, the value entered is not being put into the database...
Is there anyway someone help me with this?
Thanks for your time in advance,
K