【发布时间】:2014-05-13 10:02:47
【问题描述】:
我有两个对象:UserDto 和 RoleDto。用户有一个属性,即 RoleDto。 在我的视图模型中,我有以下内容:
public UserDto User
{
get { return _user; }
set
{
if (_user == value) return;
_user = value;
User.PropertyChanged += UserPropertyChanged;
OnPropertyChanged("User");
}
}
private UserDto _user;
public IEnumerable<RoleDto> Roles { get; set; } //I load all available roles in here
在视图中,我要选择用户所属的角色。这就是我在视图中定义组合框的方式:
<ComboBox Grid.Row="3" Grid.Column="1" Margin="5" ItemsSource="{Binding Roles}" SelectedItem="{Binding User.Role, Mode=TwoWay, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Description" />
如果我尝试创建一个新用户并从组合框中选择一个角色,它会正确绑定到该用户。问题是当我加载一个已经存在的用户时,该角色不会显示在组合框中(即使用户已经定义了角色)。
有什么帮助吗?
提前致谢
【问题讨论】:
-
我推断什么,当您(userdto)用户有数据或没有您的组合框绑定到 Roles 时。您必须指定组合框 selectedItem。
标签: wpf combobox selecteditem