样本数据
UK
-london
-london 1
-london --
-london 100
-Newcastle
-Newcastle 1
-Newcastle 2
-Newcastle 3
-liverpool
USA
-New york
-califonia
China
-one
-two
我有一个带有上面示例结构的 radTreeListView。radTreeListView 中的每个可选项目都有一个复选框,用户可以选中或取消选中以选中或取消选中该项目。
我的要求是确保用户只能选择同一个 rootItem/Parent 下的项目。
用户不应该能够在 UK 下选择一个项目,然后在 USA 或 China 下选择另一个项目。
然而,他们可以选择英国、伦敦 1、纽卡斯尔 3 和利物浦
我基本上想确保所做的所有选择都具有相同的 rootParent。
这就是检索所选项目的方式
private void radTreeListView_SelectionChanged(object sender, SelectionChangeEventArgs e)
{
//Limit number of items that can be selected from the radTreeListView
if (totalSelectedItems() > 3 && e.AddedItems.Count > 0)
{
radTreeListView.Unselect(e.AddedItems);
radTreeListView.Rebind();
}
//Retrieve items selected from the radTreeListView
System.Collections.ObjectModel.ObservableCollection<object> selectedItems = radTreeListView.SelectedItems;
StringBuilder userSelection = new StringBuilder();
const string seperator = ", ";
foreach (object item in selectedItems)
{
myDataclass myItems = (myDataclass)item;
userSelection.Append(myItems.Name).Append(seperator);
}
}
我尝试了下面的代码,但父级返回 null
object parent = radTreeListView.ItemContainerGenerator.ContainerFromItem(radTreeListView.SelectedItem);