Hello i have a problem, trying to edit a oRadTreeViewItem
All tree is generated by code (not binding)
RadTreeViewItem oRadTreeViewItem = new RadTreeViewItem(); oRadTreeViewItem.Header = "Name"; oRadTreeViewItem.IsEditable = true; oRadTreeViewItem.PreviewEditStarted += radTreeView_PreviewEditStarted; oRadTreeViewItem.Edited += DataViewExplorerTree_Edited; oRadTreeViewItem.EditStarted += radTreeView_EditStarted; DataViewExplorerTree.Items.Add(oRadTreeViewItem);
RadTreeViewItem oRadTreeViewItem = DataViewExplorerTree.GetItemByPath("Path of the item");
private void DataViewExplorerTree_Edited(object sender, Telerik.Windows.Controls.RadTreeViewItemEditedEventArgs e) { RadTreeViewItem targetItem = e.Source as RadTreeViewItem; // (e.Source as RadTreeViewItem).IsInEditMode = false; //(e.Source as RadTreeViewItem).Background = new SolidColorBrush(Colors.Red); } private void radTreeView_PreviewEditStarted(object sender, Telerik.Windows.Controls.RadTreeViewItemEditedEventArgs e) { RadTreeViewItem targetItem = e.Source as RadTreeViewItem; } private void radTreeView_EditStarted(object sender, Telerik.Windows.Controls.RadTreeViewItemEditedEventArgs e) { RadTreeViewItem targetItem = e.Source as RadTreeViewItem; }oRadTreeViewItem.IsInEditMode = true; or oRadTreeViewItem.BeginEdit(); (ALWAYS return false)
<telerik:RadGridView AutoGenerateColumns="False" NewRowStyle="{StaticResource NewRowStyle}" RowStyle="{StaticResource RowStyle}" Foreground="White" HorizontalGridLinesBrush="White" Margin="10,10,210,22" Name="groupGrid" SelectionMode="Single" SelectionUnit="FullRow" VerticalGridLinesBrush="White" SelectionChanged="groupGrid_SelectionChanged" CellEditEnded="groupGrid_CellEditEnding" RowIndicatorVisibility="Collapsed" ShowGroupPanel="False" ShowInsertRow="True" RowEditEnded="groupGrid_RowEditEnded">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Task Name: " DataMemberBinding="{Binding Name}" />
<telerik:GridViewDataColumn Header="Description: " DataMemberBinding="{Binding Description}" />
<telerik:GridViewDataColumn Header="Solution: " DataMemberBinding="{Binding Solution}" />
<my:TimePickerColumn DataMemberBinding="{Binding StartTime}" Header="Start Time" TimeInterval="0:30:0"/>
<telerik:GridViewDataColumn Header="End Time: " DataMemberBinding="{Binding EndTime}" />
<telerik:GridViewDataColumn Header="Elapsed:" UniqueName="Elapsed" DataMemberBinding="{Binding ElapsedTime}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
public class TimePickerColumn : GridViewBoundColumnBase { public TimeSpan TimeInterval { get { return (TimeSpan)GetValue(TimeIntervalProperty); } set { SetValue(TimeIntervalProperty, value); } } public static readonly DependencyProperty TimeIntervalProperty = DependencyProperty.Register("TimeInterval", typeof(TimeSpan), typeof(TimePickerColumn), new PropertyMetadata(TimeSpan.FromHours(1d))); public override FrameworkElement CreateCellEditElement(GridViewCell cell, object dataItem) { this.BindingTarget = RadTimePicker.SelectedValueProperty; RadTimePicker picker = new RadTimePicker(); picker.IsTooltipEnabled = false; picker.TimeInterval = this.TimeInterval; picker.SetBinding(this.BindingTarget, this.CreateValueBinding()); return picker; } public override object GetNewValueFromEditor(object editor) { RadTimePicker picker = editor as RadTimePicker; if (picker != null) { picker.DateTimeText = picker.SelectedTime.Value.ToString(); } return base.GetNewValueFromEditor(editor); } private Binding CreateValueBinding() { Binding valueBinding = new Binding(); valueBinding.Mode = BindingMode.TwoWay; valueBinding.NotifyOnValidationError = true; valueBinding.ValidatesOnExceptions = true; valueBinding.UpdateSourceTrigger = UpdateSourceTrigger.Explicit; valueBinding.Path = new PropertyPath(this.DataMemberBinding.Path.Path); return valueBinding; } }<telerik:GridViewDataColumn UniqueName="List" IsFilterable="False" Width="100"> <telerik:GridViewColumn.HeaderCellStyle> <Style TargetType="telerik:GridViewHeaderCell"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="telerik:GridViewHeaderCell"> <StackPanel Orientation="Vertical"> <TextBlock Text="Edit" HorizontalAlignment="Center"></TextBlock> <CheckBox x:Name="AllEdited" HorizontalAlignment="Center" VerticalAlignment="Center" Click="AllEdited_Click" Validation.ErrorTemplate="{x:Null}" IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=DataContext.EditMode}"></CheckBox> </StackPanel> </ControlTemplate> </Setter.Value> </Setter> </Style> </telerik:GridViewColumn.HeaderCellStyle> <telerik:GridViewColumn.CellStyle> <Style TargetType="telerikGridView:GridViewCell"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="telerikGridView:GridViewCell"> <CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding CuestionarioVisible}" Validation.ErrorTemplate="{x:Null}" IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=DataContext.EditMode}"></CheckBox> </ControlTemplate> </Setter.Value> </Setter> </Style> </telerik:GridViewColumn.CellStyle></telerik:GridViewDataColumn>