
this
.RadTreeView.Items.Add(new RadTreeViewItem()
{
Header = "Name"
});
this.RadTreeView.Items.Add(new RadTreeViewItem()
{
Header = "Commodity"
});
Now I want to show the children under commodity on click of commodity (parent node).
private
void RadTreeView_Expanded(object sender, Telerik.Windows.RadRoutedEventArgs e) {
RadTreeView objRadTreeView = sender as RadTreeView;
RadTreeViewItem objRadItem = e.OriginalSource as RadTreeViewItem;
CommodityCollection objCommodityCollection = this.CommodityCollection;
for (int i = 0; i < objCommodityCollection.Count; i++) {
objRadItem.Items.Add(
objCommodityCollection[i].CommodityName);
}
}
Now the issue is when I run the application, as currently there are no child for commodity I am not getting expand icon on the left side of commodity (when the page is loaded) because of which Expanded event is not called.
How to resolve this issue?
private void RadTreeView_Expanded(object sender, Telerik.Windows.RadRoutedEventArgs e) {
RadTreeView objRadTreeView = sender as RadTreeView;
}

<Telerik:RadTreeView x:Name="RadTreeView" DockPanel.Dock="Bottom"/>
RadTreeViewItem
aa;
for (int i = 0; i < CommodityCollection.Count; i++) {
aa = new RadTreeViewItem();
aa.Header = CommodityCollection[i].ABC;
this.RadTreeView.Items.Add(aa);
Now my problem is How to add child node in the RadTreeView?

| /// <summary> |
| /// Interaction logic for Window1.xaml |
| /// </summary> |
| public partial class Window1 : Window |
| { |
| public ObservableCollection<Item> Items |
| { |
| get { return (ObservableCollection<Item>)GetValue(ItemsProperty); } |
| set { SetValue(ItemsProperty, value); } |
| } |
| // Using a DependencyProperty as the backing store for Items. This enables animation, styling, binding, etc... |
| public static readonly DependencyProperty ItemsProperty = |
| DependencyProperty.Register("Items", typeof(ObservableCollection<Item>), typeof(Window1)); |
| public Window1() |
| { |
| InitializeComponent(); |
| Items = new ObservableCollection<Item>(); |
| Items.Add(new Item("Item 1")); |
| Items.Add(new Item("Item 2")); |
| Items.Add(new Item("Item 3")); |
| } |
| } |
| public class Item |
| { |
| public string Header { get; set; } |
| public ObservableCollection<Item> Items { get; set; } |
| public Item(string header) |
| { |
| Header = header; |
| Items = new ObservableCollection<Item>(); |
| } |
| } |
| <Window.Resources> |
| <HierarchicalDataTemplate x:Key="NodeTemplate" ItemsSource="{Binding Path=Items}"> |
| <StackPanel Orientation="Horizontal"> |
| <TextBlock Text="{Binding Path=Header}"/> |
| </StackPanel> |
| </HierarchicalDataTemplate> |
| </Window.Resources> |
| <Grid> |
| <Telerik:RadTreeView IsDragDropEnabled="True" Name="t" |
| ItemsSource="{Binding Path=Items, ElementName=window}" |
| ItemTemplate="{StaticResource NodeTemplate}"> |
| </Telerik:RadTreeView> |
| </Grid> |
| at Telerik.Windows.Controls.RadTreeViewItem.CheckStatePropertyChangedConstrainValue(DependencyObject d, Object newValue) |
| at System.Windows.DependencyObject.ProcessCoerceValue(DependencyProperty dp, PropertyMetadata metadata, EntryIndex& entryIndex, Int32& targetIndex, EffectiveValueEntry& newEntry, EffectiveValueEntry& oldEntry, Object& oldValue, Object baseValue, CoerceValueCallback coerceValueCallback, Boolean coerceWithDeferredReference, Boolean skipBaseValueChecks) |
| at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, OperationType operationType) |
| at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, OperationType operationType, Boolean isInternal) |
| at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value) |
| at Telerik.Windows.Controls.RadTreeViewItem.set_CheckState(ToggleState value) |
| at Telerik.Windows.Controls.RadTreeViewItem.SetCheckStateWithNoPropagation(ToggleState state) |
| at Telerik.Windows.Controls.RadTreeViewItem.Render(Boolean recursive) |
| at Telerik.Windows.Controls.RadTreeViewItem.OnItemsChanged(NotifyCollectionChangedEventArgs e) |
| at System.Windows.Controls.ItemsControl.OnItemCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) |
| at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e) |
| at System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args) |
| at System.Windows.Controls.ItemCollection.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e) |
| at System.Windows.WeakEventManager.DeliverEventToList(Object sender, EventArgs args, ListenerList list) |
| at System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args) |
| at System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) |
| at System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args) |
| at System.Windows.Data.ListCollectionView.ProcessCollectionChangedWithAdjustedIndex(NotifyCollectionChangedEventArgs args, Int32 adjustedOldIndex, Int32 adjustedNewIndex) |
| at System.Windows.Data.ListCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args) |
| at System.Windows.Data.CollectionView.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) |
| at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) |
| at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item) |
| at System.Collections.ObjectModel.Collection`1.Add(T item) |
| at System.Collections.ObjectModel.Collection`1.System.Collections.IList.Add(Object value) |
| at Telerik.Windows.Controls.RadTreeView.EndDrag() |
| at Telerik.Windows.Controls.RadTreeView.HandleMouseUp(MouseEventArgs e) |
| at Telerik.Windows.Controls.RadTreeView.RadTreeView_MouseLeftButtonUp(Object sender, MouseEventArgs e) |
| at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) |
| at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) |
| at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) |
| at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) |
| at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) |
| at System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject sender, MouseButtonEventArgs e) |
| at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) |
| at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) |
| at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) |
| at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) |
| at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) |
| at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) |
| at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) |
| at System.Windows.Input.InputManager.ProcessStagingArea() |
| at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) |
| at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) |
| at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) |
| at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) |
| at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) |
| at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) |
| at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) |
| at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) |
| at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) |
| at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) |
| at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter) |
| at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg) |
| at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) |
| at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) |
| at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) |
| at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) |
| at System.Windows.Threading.Dispatcher.Run() |
| at System.Windows.Application.RunDispatcher(Object ignore) |
| at System.Windows.Application.RunInternal(Window window) |
| at System.Windows.Application.Run(Window window) |
| at System.Windows.Application.Run() |
| at Telerik.App.Main() in C:\Documents and Settings\talg\Desktop\TreeViewDrag\Telerik\Telerik\obj\Debug\App.g.cs:line 0 |
| at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) |
| at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) |
| at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() |
| at System.Threading.ThreadHelper.ThreadStart_Context(Object state) |
| at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) |
| at System.Threading.ThreadHelper.ThreadStart() |
