【发布时间】:2025-12-10 13:30:02
【问题描述】:
我正在尝试使用 ObservableCollection 创建树视图,但在从对象的列表中获取元素时遇到问题。发生的事情是我可以检索组名,它显示在列表上就好了,但是我没有得到用户名,而是得到一个空格。这是一些代码:
<TreeView x:Name="treeUsers">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=GroupName}" >
<Grid Margin="1">
<CheckBox Content="{Binding Path=UserList.Name}" />
</Grid>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
在这段代码中,我从一个列表中获取用户,然后将他们分成不同的组,并将列表返回给我的查看器。
private Dictionary<string, GroupDTO> _groupsDTO= new Dictionary<string, GroupDTO>();
_groupsDTO.Add("GENERAL", new GroupDTO("GENERAL"));
foreach (NetSendUser user in ObtainUserList())
{
UserDTO userDTO = new UserDTO (user);
_groupsDTO["GENERAL"].UserList.Add(userDTO );
if (!_groupsDTO.ContainsKey(user.Area))
_groupsDTO.Add(user.Area, new GroupDTO(user.Area));
_groupsDTO[user.Area].UserList.Add(userDTO);
}
ObservableCollection<GroupDTO> groups= new ObservableCollection<GroupDTO>(_groupDTO.Values.ToArray());
treeUsers.ItemsSource = groups;
这是我的 GroupDTO:
public class GroupDTO: ObjectDTO
{
internal GroupDTO(string name)
: base()
{
_groupName = name;
}
private string _groupName = default(string);
public string GroupName
{
get { return _groupName ; }
set
{
_groupName = value;
OnPropertyChanged("GroupName");
}
}
private ObservableCollection<UserDTO> _userList= new ObservableCollection<UserDTO>();
public ObservableCollection<FuncionarioDTO> UserList
{
get { return _userList; }
}
}
【问题讨论】: