PROBLEM If you have a GridViewCheckBox column to your gridview you need to click three times by default in order to change the value of the checkbox - the first two clicks will enter the edit mode and the last one will change the value. The following solutions will give you options to control the number of clicks needed to change the value of the checkbox column. SOLUTION
|
<Window x:Class=
"DynamicColumnSample.MainWindow"
xmlns:local=
"clr-namespace:DynamicColumnSample"
xmlns:my=
"clr-namespace:DynamicColumnSample.Objects"
xmlns:dxb=
"http://schemas.devexpress.com/winfx/2008/xaml/bars"
Title=
"MainWindow"
xmlns:dx=
"http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:DynamicColumnSanple=
"clr-namespace:DynamicColumnSample"
Width=
"525"
Height=
"364"
>
<Window.DataContext>
<local:ViewModel />
</Window.DataContext>
<Window.Resources>
<my:ColumnTemplateSelector x:Key=
"ColumnTemplateSelector"
/>
<DataTemplate x:Key=
"DefaultColumnTemplate"
>
<ContentControl>
<dxg:GridColumn AllowEditing=
"False"
my:ColumnBindingHelper.BindingPath=
"{Binding FieldName}"
Header=
"{Binding Header}"
/>
</ContentControl>
</DataTemplate>
<DataTemplate x:Key=
"TextColumnTemplate"
>
<ContentControl>
<dxg:GridColumn AllowEditing=
"True"
my:ColumnBindingHelper.BindingPath=
"{Binding FieldName}"
Header=
"{Binding Header}"
>
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings Tag=
"{Binding Path=Tag}"
ToolTip=
"{Binding Path=ToolTip}"
/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</ContentControl>
</DataTemplate>
</Window.Resources>
<Grid>
<dx:PopupBase Name=
"hitInfoPopup"
Placement=
"Mouse"
PlacementTarget=
"{Binding ElementName=treeListStoreUnitSchedule}"
Opened=
"hitInfoPopup_Opened"
>
<Grid Width=
"250"
Height=
"250"
Background=
"Beige"
>
<Border Padding=
"12,8,24,10"
>
<ItemsControl Name=
"hitIfoItemsControl"
>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation=
"Horizontal"
>
<TextBlock Text=
"{Binding Name}"
></TextBlock>
<TextBlock Text=
"{Binding Text}"
></TextBlock>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Border>
</Grid>
</dx:PopupBase>
<dxg:GridControl x:Name=
"treeListStoreUnitSchedule"
Grid.Row=
"1"
ColumnGeneratorTemplateSelector=
"{StaticResource ColumnTemplateSelector}"
ColumnsSource=
"{Binding GridColumns}"
ItemsSource=
"{Binding RegionObjects}"
>
<dxg:GridControl.Resources>
<my:CustomChildrenSelector x:Key=
"childrenSelector"
/>
</dxg:GridControl.Resources>
<dxg:GridControl.View>
<dxg:TreeListView x:Name=
"view"
ChildNodesSelector=
"{StaticResource childrenSelector}"
TreeDerivationMode=
"ChildNodesSelector"
local:TreeListExpandedNodesHelper.SynchIsExpanded=
"True"
>
<dxg:TreeListView.RowCellMenuCustomizations>
<dxb:BarCheckItem Name=
"checkItem1"
Content=
"Checked"
IsChecked=
"True"
dxb:BarItemLinkActionBase.ItemLinkIndex=
"0"
/>
<dxb:BarItemLinkSeparator dxb:BarItemLinkActionBase.ItemLinkIndex=
"1"
/>
</dxg:TreeListView.RowCellMenuCustomizations>
<dxg:TreeListView.CellTemplate>
<DataTemplate>
<Border
BorderBrush=
"{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type dxg:GridCellContentPresenter}}, Path=BorderBrush}"
BorderThickness=
"{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type dxg:GridCellContentPresenter}}, Path=BorderThickness}"
>
<dxe:TextEdit x:Name=
"PART_Editor"
/>
</Border>
</DataTemplate>
</dxg:TreeListView.CellTemplate>
</dxg:TreeListView>
</dxg:GridControl.View>
</dxg:GridControl>
<Button Command=
"{Binding Path=AddCommand}"
Content=
"Button"
Height=
"23"
HorizontalAlignment=
"Left"
Margin=
"321,0,0,0"
Name=
"button1"
VerticalAlignment=
"Top"
Width=
"75"
/>
</Grid>
</Window>
private
void
PopulateMonthList() {
try
{
ObservableCollection<MonthInfo> tmpMonthInfo =
new
ObservableCollection<MonthInfo>(){
new
MonthInfo(){MonthName=
"2011-01"
, MonthNumber=201101},
new
MonthInfo(){MonthName=
"2011-02"
, MonthNumber=201102},
new
MonthInfo(){MonthName=
"2011-03"
, MonthNumber=201103},
new
MonthInfo(){MonthName=
"2011-04"
, MonthNumber=201104},
new
MonthInfo(){MonthName=
"2011-05"
, MonthNumber=201105},
new
MonthInfo(){MonthName=
"2011-06"
, MonthNumber=201106},
new
MonthInfo(){MonthName=
"2011-07"
, MonthNumber=201107},
new
MonthInfo(){MonthName=
"2011-08"
, MonthNumber=201108},
new
MonthInfo(){MonthName=
"2011-09"
, MonthNumber=201109},
new
MonthInfo(){MonthName=
"2011-10"
, MonthNumber=201110},
new
MonthInfo(){MonthName=
"2011-11"
, MonthNumber=201111},
new
MonthInfo(){MonthName=
"2011-12"
, MonthNumber=201112},
new
MonthInfo(){MonthName=
"2012-01"
, MonthNumber=201201},
};
TextColumn txtColumn =
null
;
for
(
int
i = 0; i < 13; i++) {
txtColumn =
new
TextColumn();
txtColumn.FieldName =
"SalesInfoObject["
+ i.ToString() +
"].Quantity"
;
txtColumn.Header = tmpMonthInfo[i].MonthName.ToString();
txtColumn.Setting = SettingsType.Text;
txtColumn.Tag =
"SalesInfoObject["
+ i.ToString() +
"]"
;
txtColumn.ToolTip =
"SalesInfoObject["
+ i.ToString() +
"]"
+
"].Brand"
;
_gridColumns.Add(txtColumn);
}
_gridColumns.Insert(0,
new
GridColumn() { Header =
"Store Region"
, FieldName =
"Name"
, Setting = SettingsType.Default });
_gridColumns.Insert(1,
new
GridColumn() { Header =
"Store Quantity"
, FieldName =
"Count"
, Setting = SettingsType.Default });
OnPropertyChanged(
"GridColumns"
);
}
catch
(Exception ex) {
throw
ex;
}
<CollectionViewSource x:Key="categoriesViewSource" d:DesignSource="{d:DesignInstance Model:Category, CreateList=True}" />
<telerik:RadTreeView HorizontalAlignment="Stretch" IsEditable="True"
ItemsSource="{Binding}"
Name="CategoryTreeView"
VerticalAlignment="Stretch"
SelectionChanged="CategoryTreeView_OnSelectionChanged"
KeyUp="CategoryTreeView_KeyUp"
Edited="CategoryTreeView_Edited">
<telerik:RadTreeView.ItemEditTemplate>
<DataTemplate>
<TextBox Text="{Binding Name, Mode=TwoWay}"/>
</DataTemplate>
</telerik:RadTreeView.ItemEditTemplate>
<telerik:RadTreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Subcategories}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate>
</telerik:RadTreeView>
Category parent = CategoryTreeView.SelectedItem == nullEverything also works fine and child items are inserting to selected node. Works until I try to add a root node. When no selected item is available, this code won't work. New category adds to collection but never displays on tree. Can you please help me?
? null
: _context.Categories.FirstOrDefault(
c => c.CategoryID == ((Category) CategoryTreeView.SelectedItem).CategoryID);
Category newCategory = new Category
{
Name = "New category",
ParentCategory = parent,
ParentID = parent == null ? (Guid?) null : parent.CategoryID
};
_context.Categories.AddObject(newCategory);
public
class
DatePickerExtended : RadDatePicker
{
static
DatePickerExtended()
{
//Make sure the style in Themes/Generic.xaml is used.
DefaultStyleKeyProperty.OverrideMetadata(
typeof
(DatePickerExtended),
new
FrameworkPropertyMetadata(
typeof
(DatePickerExtended)));
}
}
<
Style
TargetType
=
"{x:Type local:DatePickerExtended}"
x:Key
=
"{x:Type local:DatePickerExtended}"
>
<!-- A bunch of setters, including for the Template property. -->
</
Style
>
<
Window
x:Class
=
"WpfApplication2.MainWindow"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
>
<
Window.Resources
>
<
SolidColorBrush
x:Key
=
"GridView_HeaderBackground"
Color
=
"LightBlue"
/>
<
Style
TargetType
=
"telerik:GridViewHeaderCell"
>
<
Setter
Property
=
"Background"
Value
=
"{StaticResource GridView_HeaderBackground}"
/>
</
Style
>
</
Window.Resources
>
<
Grid
>
<
telerik:RadGridView
Name
=
"radGridView1"
ShowGroupPanel
=
"False"
RowIndicatorVisibility
=
"Collapsed"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
Header
=
"One"
Width
=
"100"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
Grid
>
</
Window
>
<telerik:SeriesMapping> <telerik:SeriesMapping.SeriesDefinition> <telerik:PieSeriesDefinition LegendDisplayMode="DataPointLabel" ShowItemLabels="False" ShowItemToolTips="True"> <telerik:PieSeriesDefinition.Appearance> <telerik:SeriesAppearanceSettings ></telerik:SeriesAppearanceSettings> </telerik:PieSeriesDefinition.Appearance> </telerik:PieSeriesDefinition> </telerik:SeriesMapping.SeriesDefinition> <telerik:ItemMapping DataPointMember="YValue" FieldName="Commission" /> <telerik:ItemMapping DataPointMember="LegendLabel" FieldName="Symbol" /> </telerik:SeriesMapping>
<telerik:ItemMapping DataPointMember="YValue" FieldName="{Binding ElementName=radChart1, Path=DataContext.DataFieldName}" />