Связывание моделей сложных объектов с 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 для любых разрешений, которые предоставляются выбранному пользователю. Но похоже, что должен быть лучший путь.

Ответы на вопрос(1)

Ваш ответ на вопрос