Powiązanie modeli złożonych obiektów z WPF

Obecnie pracuję nad refaktoryzacją starego kodu napisanego na WPF z C #.

Obecnie mam złożony model użytkownika, który wygląda tak:

public class UserModel{
   public User User {get; set;}
   public List<Guid> Permissions {get; set;}
}

W tym modelu lista Uprawnienia to lista identyfikatorów uprawnień przyznanych użytkownikowi, do którego odwołuje się model.

W moim xamlu dla mojego ekranu zarządzania użytkownikami mam listę tych modeli powiązanych z polem kombi, a gdy wybór się zmienia, zaznaczony element jest powiązany z tabelą zawierającą pola tekstowe dla właściwości użytkownika i kontroli elementów.

Ta kontrola elementów jest wypełniona polami wyboru powiązanymi ze wszystkimi uprawnieniami w systemach podczas ładowania strony. Moje pytanie brzmi: jaki jest najlepszy sposób powiązania listy uprawnień z polami wyboru w kontrolce elementów?

Kod kontrolki elementów wygląda mniej więcej tak:

<ScrollViewer Grid.Row="7" Grid.Column="1">
  <ItemsControl ItemsSource={Binding}>
    <ItemsControl.ItemsTemplate>
        <DataTemplate>
            <Checkbox Content="{Binding Description}" IsChecked="{Binding IsSelected}"/>
        </DataTemplate>
    </ItemsControl.ItemsTemplate>
</ScrollViewer>

A zbiór uprawnień to Lista tego obiektu:

class SelectedPermission{
   public Guid PermissionId {get; set;}
   public string Description {get; set;}
   public bool IsSelected {get; set;}
 }

Moją początkową myślą było zaimplementowanie INotifyPropertyChanged w kolekcji SelectedPermission i po powiązaniu mojego użytkownika wystarczy ustawić IsSelected na true dla wszelkich uprawnień, które są przyznane wybranemu użytkownikowi. Ale wydaje się, że powinien być lepszy sposób.

questionAnswers(1)

yourAnswerToTheQuestion