Rami Abughazaleh
Top achievements
Rank 1
Rami Abughazaleh
asked on 17 Jul 2010, 01:32 AM
RadControls for Silverlight 4 v2010.2.714
In the previous version (RadControls for Silverlight 4 v2010.1.603) I was able to use the following syntax to automatically expand all nodes by default:
As indicated here:
http://www.telerik.com/community/forums/silverlight/treelist/when-to-call-expandall.aspx
However, I have tried similar syntax but it is not working as expected.
<telerik:RadTreeListView.ItemContainerStyle>
<Style TargetType="telerik:GridViewRow">
<Setter Property="IsExpanded" Value="True" />
</Style>
</telerik:RadTreeListView.ItemContainerStyle>
Is this feature not available with the latest release (RadControls for Silverlight 4 v2010.2.714)?
Thank you.
In the previous version (RadControls for Silverlight 4 v2010.1.603) I was able to use the following syntax to automatically expand all nodes by default:
<
telerikNavigation:RadTreeListView
>
<
telerikNavigation:RadTreeListView.ItemContainerStyle
>
<
Style
TargetType
=
"telerikNavigation:RadTreeListViewItem"
>
<
Setter
Property
=
"IsExpanded"
Value
=
"True"
/>
</
Style
>
</
telerikNavigation:RadTreeListView.ItemContainerStyle
>
</
telerikNavigation:RadTreeListView
>
As indicated here:
http://www.telerik.com/community/forums/silverlight/treelist/when-to-call-expandall.aspx
However, I have tried similar syntax but it is not working as expected.
<telerik:RadTreeListView.ItemContainerStyle>
<Style TargetType="telerik:GridViewRow">
<Setter Property="IsExpanded" Value="True" />
</Style>
</telerik:RadTreeListView.ItemContainerStyle>
Is this feature not available with the latest release (RadControls for Silverlight 4 v2010.2.714)?
Thank you.
14 Answers, 1 is accepted
0
Mike
Top achievements
Rank 1
answered on 18 Jul 2010, 12:37 PM
I was able to resolve this issue by calling the ExpandAllHierarchyItems() method on the RadTreeListView.
0
Stephen
Top achievements
Rank 1
answered on 21 Jul 2010, 04:24 PM
I would like to be able to do this in xaml, without having the code-behind. Is it possible with the current version?
Cheers,
Steve
Cheers,
Steve
0
Andy Fry
Top achievements
Rank 1
answered on 21 Jul 2010, 10:48 PM
I am also interested in how you bind the IsExpanded property to a property on the objects that I have the TreeListView bound to.
0
Rami Abughazaleh
Top achievements
Rank 1
answered on 21 Jul 2010, 11:59 PM
I'm thinking you can use the ContainerBindingCollection.
http://www.telerik.com/support/kb/silverlight/treeview/radtreeview-and-hierarchicaldatatemplate.aspx
http://www.telerik.com/community/forums/silverlight/tabcontrol/setting-isselected-via-databinding-at-runtime.aspx
http://www.telerik.com/support/kb/silverlight/treeview/radtreeview-and-hierarchicaldatatemplate.aspx
http://www.telerik.com/community/forums/silverlight/tabcontrol/setting-isselected-via-databinding-at-runtime.aspx
0
Hello all,
Container bindings are not yet supported in the new version of RadTreeListView. What you can do currently is to use RowLoaded and RowUnloaded events. In the loaded event you will bind specific row properties to the respective properties of your data items. In the unloaded event you can unbind them - using ClearValue(...) method.
Best wishes,
Stefan Dobrev
the Telerik team
Container bindings are not yet supported in the new version of RadTreeListView. What you can do currently is to use RowLoaded and RowUnloaded events. In the loaded event you will bind specific row properties to the respective properties of your data items. In the unloaded event you can unbind them - using ClearValue(...) method.
Best wishes,
Stefan Dobrev
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
David Schnebly
Top achievements
Rank 1
answered on 27 Jul 2010, 03:11 PM
Is there an estimated time when container bindings will be working for the RadTreeListView?
0
Hello David,
We did not have an estimate when the container bindings will be implemented for RadTreeListView. Can you share more details about your scenario? Why is the RowLoaded event not sufficient for your case?
Greetings,
Stefan Dobrev
the Telerik team
We did not have an estimate when the container bindings will be implemented for RadTreeListView. Can you share more details about your scenario? Why is the RowLoaded event not sufficient for your case?
Greetings,
Stefan Dobrev
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Tim Tos
Top achievements
Rank 1
answered on 31 Jul 2010, 07:46 AM
Hello Stefan,
I also need this functionality although I don't want to expand all nodes by default.
I want to expand a node according to the ViewModel! I used the XAML-Code below and it was working very well!
Now - with Q2 - I don't know how to solve this elegant and at least for my scenario it is very ugly to use the event you spoke about!
My XAML-Code:
<my:RadTreeListView.ItemContainerStyle>
<Style TargetType="local:TableItemViewModel">
<Setter Property="util:SetterValueBindingHelper.PropertyBinding">
<Setter.Value>
<util:SetterValueBindingHelper
Property="IsExpanded"
Binding="{Binding IsExpanded}"/>
</Setter.Value>
</Setter>
</Style>
</my:RadTreeListView.ItemContainerStyle>
Any ideas?
Thanks,
Tim.
I also need this functionality although I don't want to expand all nodes by default.
I want to expand a node according to the ViewModel! I used the XAML-Code below and it was working very well!
Now - with Q2 - I don't know how to solve this elegant and at least for my scenario it is very ugly to use the event you spoke about!
My XAML-Code:
<my:RadTreeListView.ItemContainerStyle>
<Style TargetType="local:TableItemViewModel">
<Setter Property="util:SetterValueBindingHelper.PropertyBinding">
<Setter.Value>
<util:SetterValueBindingHelper
Property="IsExpanded"
Binding="{Binding IsExpanded}"/>
</Setter.Value>
</Setter>
</Style>
</my:RadTreeListView.ItemContainerStyle>
Any ideas?
Thanks,
Tim.
0
Hello Tim,
You should use RowStyle property for your scenario.
Kind regards,
Stefan Dobrev
the Telerik team
You should use RowStyle property for your scenario.
Kind regards,
Stefan Dobrev
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Tim Tos
Top achievements
Rank 1
answered on 05 Aug 2010, 07:01 AM
Hello Stefan,
thanks a lot for your time and help! RowStyle was just what I needed!
Tim.
thanks a lot for your time and help! RowStyle was just what I needed!
Tim.
0
Dimitri Rakviashvili
Top achievements
Rank 1
answered on 26 Aug 2010, 12:49 PM
Tim, could you provide full example of your code ?
Or could you explain how can i obtain this :
util:SetterValueBindingHelper class ?
Thanks
Or could you explain how can i obtain this :
util:SetterValueBindingHelper class ?
Thanks
0
0
JJ Loubser
Top achievements
Rank 1
answered on 15 Mar 2011, 10:25 AM
radTreeListView_New.ExpandAllGroups();
radTreeListView_New.ExpandAllHierarchyItems();
not working in my case:
try it to solve this problem:
http://www.telerik.com/community/forums/silverlight/treelist/radtreelistview-containerbinding-not-binding.aspx
used RowLoaded and RowUnLoaded,
Error HRESULT E_FAIL has been returned from a call to a COM component
at line:
Row_.IsExpanded = oldRow_.IsExpanded;
in:
private RadTreeListView radTreeListView_;
private bool mTreeViewListLeftScreen = false;
private bool mTreeViewSetAllExapnd = false;
public void radTreeViewlist_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
{
if (!mTreeViewListLeftScreen)
{
radTreeListView_ = (RadTreeListView)sender;
if (radTreeListView_ != null && radTreeListView_.ItemsSource != null && radTreeListView_.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_.Items)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(item);
item.IsItemCollectionExpanded = Row_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
}
}
}
else
{
RadTreeListView radTreeListView_New = (RadTreeListView)sender;
if (radTreeListView_New != null && radTreeListView_New.ItemsSource != null && radTreeListView_New.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_New.Items)
{
if (radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
foreach (TreeViewListItem olditem in radTreeListView_.Items)
{
if (olditem.Id == item.Id)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item);
TreeListViewRow oldRow_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem);
if (oldRow_.IsExpanded)
{}
Row_.IsExpanded = oldRow_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
}
}
}
}
}
}
}
radTreeListView_New.ExpandAllHierarchyItems();
not working in my case:
try it to solve this problem:
http://www.telerik.com/community/forums/silverlight/treelist/radtreelistview-containerbinding-not-binding.aspx
used RowLoaded and RowUnLoaded,
Error HRESULT E_FAIL has been returned from a call to a COM component
at line:
Row_.IsExpanded = oldRow_.IsExpanded;
in:
private RadTreeListView radTreeListView_;
private bool mTreeViewListLeftScreen = false;
private bool mTreeViewSetAllExapnd = false;
public void radTreeViewlist_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
{
if (!mTreeViewListLeftScreen)
{
radTreeListView_ = (RadTreeListView)sender;
if (radTreeListView_ != null && radTreeListView_.ItemsSource != null && radTreeListView_.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_.Items)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(item);
item.IsItemCollectionExpanded = Row_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
}
}
}
else
{
RadTreeListView radTreeListView_New = (RadTreeListView)sender;
if (radTreeListView_New != null && radTreeListView_New.ItemsSource != null && radTreeListView_New.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_New.Items)
{
if (radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
foreach (TreeViewListItem olditem in radTreeListView_.Items)
{
if (olditem.Id == item.Id)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item);
TreeListViewRow oldRow_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem);
if (oldRow_.IsExpanded)
{}
Row_.IsExpanded = oldRow_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
}
}
}
}
}
}
}
0
JJ Loubser
Top achievements
Rank 1
answered on 15 Mar 2011, 11:03 AM
working when I update this code:
try
{
Row_.IsExpanded = oldRow_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
catch (Exception eeee)
{ }
in:
private RadTreeListView radTreeListView_;
private bool mTreeViewListLeftScreen = false;
private bool mTreeViewSetAllExapnd = false;
public void radTreeViewlist_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
{
if (!mTreeViewListLeftScreen)
{
radTreeListView_ = (RadTreeListView)sender;
if (radTreeListView_ != null && radTreeListView_.ItemsSource != null && radTreeListView_.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_.Items)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(item);
item.IsItemCollectionExpanded = Row_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
}
}
}
else
{
RadTreeListView radTreeListView_New = (RadTreeListView)sender;
if (radTreeListView_New != null && radTreeListView_New.ItemsSource != null && radTreeListView_New.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_New.Items)
{
if (radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
foreach (TreeViewListItem olditem in radTreeListView_.Items)
{
if (olditem.Id == item.Id)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item);
TreeListViewRow oldRow_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem);
if (oldRow_.IsExpanded)
{}
try
{
Row_.IsExpanded = oldRow_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
catch (Exception eeee)
{ }
}
}
}
}
}
}
}
}
public void radTreeViewlist_RowUnloaded(object sender, Telerik.Windows.Controls.GridView.RowUnloadedEventArgs e)
{
}
just need to upgrade this code for 3 time + loads... Remember this is in ViewModel code not code behind...
try
{
Row_.IsExpanded = oldRow_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
catch (Exception eeee)
{ }
in:
private RadTreeListView radTreeListView_;
private bool mTreeViewListLeftScreen = false;
private bool mTreeViewSetAllExapnd = false;
public void radTreeViewlist_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
{
if (!mTreeViewListLeftScreen)
{
radTreeListView_ = (RadTreeListView)sender;
if (radTreeListView_ != null && radTreeListView_.ItemsSource != null && radTreeListView_.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_.Items)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(item);
item.IsItemCollectionExpanded = Row_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
}
}
}
else
{
RadTreeListView radTreeListView_New = (RadTreeListView)sender;
if (radTreeListView_New != null && radTreeListView_New.ItemsSource != null && radTreeListView_New.Items.Count > 0)
{
foreach (TreeViewListItem item in radTreeListView_New.Items)
{
if (radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) != null && radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item) is TreeListViewRow)
{
foreach (TreeViewListItem olditem in radTreeListView_.Items)
{
if (olditem.Id == item.Id)
{
if (radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) != null && radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem) is TreeListViewRow)
{
TreeListViewRow Row_ = (TreeListViewRow)radTreeListView_New.ItemContainerGenerator.ContainerFromItem(item);
TreeListViewRow oldRow_ = (TreeListViewRow)radTreeListView_.ItemContainerGenerator.ContainerFromItem(olditem);
if (oldRow_.IsExpanded)
{}
try
{
Row_.IsExpanded = oldRow_.IsExpanded;
Row_.SetBinding(TreeListViewRow.IsExpandedProperty, new Binding()
{
Source = item,
Path = new PropertyPath("IsItemCollectionExpanded")
}
);
}
catch (Exception eeee)
{ }
}
}
}
}
}
}
}
}
public void radTreeViewlist_RowUnloaded(object sender, Telerik.Windows.Controls.GridView.RowUnloadedEventArgs e)
{
}
just need to upgrade this code for 3 time + loads... Remember this is in ViewModel code not code behind...