Связывание моделей сложных объектов с WPF
В настоящее время я работаю над рефакторингом старого кода, написанного поверх WPF с использованием C #.
В настоящее время у меня есть составная модель пользователя, которая выглядит следующим образом:
public class UserModel{
public User User {get; set;}
public List<Guid> Permissions {get; set;}
}
В этой модели список разрешений представляет собой список идентификаторов разрешений, предоставленных пользователю, на который ссылается модель.
В моем 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 для любых разрешений, которые предоставляются выбранному пользователю. Но похоже, что должен быть лучший путь.