0
我目前正在重构一些使用C#编写在WPF之上的旧代码。WPF数据绑定复杂对象模型
我现在有一个看起来像这样的复合用户模型:
public class UserModel{
public User User {get; set;}
public List<Guid> Permissions {get; set;}
}
在这个模型中,权限列表授予由模型所引用的用户权限ID的列表。
在我的用户管理界面的xaml中,我列出了绑定到组合框的这些模型,当选择更改时,所选项绑定到包含用户属性和项目控件的文本框的网格。
当页面加载时,这些项目控件被填充了系统中所有权限绑定的复选框。我的问题是什么是将权限列表绑定到项目控件中复选框的最佳方式?
的项目控件的代码看起来是这样的:
<ScrollViewer Grid.Row="7" Grid.Column="1">
<ItemsControl ItemsSource={Binding}>
<ItemsControl.ItemsTemplate>
<DataTemplate>
<Checkbox Content="{Binding Description}" IsChecked="{Binding IsSelected}"/>
</DataTemplate>
</ItemsControl.ItemsTemplate>
</ScrollViewer>
和权限的集合是此对象的名单:
class SelectedPermission{
public Guid PermissionId {get; set;}
public string Description {get; set;}
public bool IsSelected {get; set;}
}
我最初的想法是要落实在INotifyPropertyChanged的SelectedPermission集合,当我绑定我的用户时,只需将IsSelected设置为true,以获取授予选定用户的任何权限。但似乎应该有更好的方法。
我会给出一个答案,我只是想,有可能比迭代DataContext更容易将IsSelected绑定到用户权限列表。 – Philter 2013-02-20 14:40:55
你可以使用LinQ。 – 2013-02-20 14:43:02
是的,但我认为可能有一种方法可以在Xaml中实现。 – Philter 2013-02-20 14:48:47