我正在尝试将UserLevelCategories列表中的数据绑定到Treeview中的ComboBox。UserLevelCategories列表位于另一个列表-systemBranches中。
产品型号:
public class SystemBranchViewModel
{
public int LocalSystemId { get; set; }
public string LocalSystemName { get; set; }
public List<BranchModel> Branches { get; set; }
public List<UserLevelCategoryModel> UserLevelCategories { get; set; }
}
字符串
代码隐藏:
List<SystemBranchViewModel> systemBranches = new List<SystemBranchViewModel>();
systemBranches = getDataService.GetSystemBranchesByUser();
Branch_List.ItemsSource = systemBranches;
型
XAML:
<TreeView Name="Branch_List">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type branch:SystemBranchViewModel}" ItemsSource="{Binding Branches}">
<TextBlock Text="{Binding LocalSystemName}" />
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type branch:BranchModel}">
<WrapPanel>
<CheckBox IsChecked="{Binding IsBranchActiveToUser}" />
<TextBlock Text="{Binding BranchName }" />
</WrapPanel>
</DataTemplate>
<DataTemplate DataType="{x:Type branch:UserLevelCategoryModel}">
<ComboBox ItemsSource="{Binding UserLevelCategories}"
DisplayMemberPath="{Binding UserLevelCategoryName}"
SelectedValuePath="{Binding UserLevelCategoryId}"/>
</DataTemplate>
</TreeView.Resources>
</TreeView>
型
输出应该如下所示:
- 系统A
- 公司名称1
- 公司名称2
- 权限:ComboBox -UserLevelCategoryName 1 -UserLevelCategoryName 2
- 系统B
- 公司名称1
- 公司名称2
- 权限:ComboBox -UserLevelCategoryName 1 -UserLevelCategoryName 2
1条答案
按热度按时间sshcrbum1#
如果你把
ComboBox
放在BranchModel
的模板中,你可以像这样绑定到父DataContext
的父UserLevelCategories
属性:字符串
对于
UserLevelCategoryModel
类型,您不需要单独的模板。