У меня есть этот XAML
<DataGrid ItemsSource="{Binding Users}"
CanUserAddRows="False"
SelectedItem="{Binding SelectedUser}"
AutoGenerateColumns="False"
Grid.Column="0">
<DataGrid.Columns>
<DataGridTextColumn Header="First name" Binding ="{Binding FirstName}"/>
<DataGridTextColumn Header="Last name" Binding ="{Binding LastName}"/>
<DataGridComboBoxColumn Width="*" Header="Catégorie"
SelectedItemBinding="{Binding Role}">
<DataGridComboBoxColumn.ElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource"
Value="{Binding Path=DataContext.ComboBox_Roles,
RelativeSource={RelativeSource
FindAncestor, AncestorType={x:Type UserControl}}}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style>
<Setter Property="ComboBox.ItemsSource" Value="{Binding
Path=DataContext.ComboBox_Roles, RelativeSource={RelativeSource
FindAncestor, AncestorType={x:Type UserControl}}}" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
Я хочу, чтобы выпадающий список связывался с моей коллекцией ролей
Моя модель
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Role { get; set; }
}
И, на мой взгляд, модель:
public ManageUsersViewModel()
{
_users = new ObservableCollection<User>
{
new User { FirstName = "First1", LastName = "Last1", Role = "Admin" },
new User { FirstName = "Last2", LastName = "Last2", Role ="User" },
};
ComboBox_Roles = new ObservableCollection<string> { "ABC", "BCD", "ASDSAD" };
}
public ObservableCollection<User> Users
{
get => _users;
set
{
_users = value;
}
}
public ObservableCollection<string> ComboBox_Roles { get; set; }
Как я могу связать эти предметы? Кажется, проблема в том, что я не могу привязать этот способ к коллекции внутри коллекции. Я хочу реализовать следующее: у меня есть выпадающий список со списком ролей, и я могу изменить роль моего пользователя, выбрав одно из значений выпадающего списка. Upd: обновил код, потому что я понял, что делаю.