Добрый день, есть Класс со свойствами и выборкой:
public partial class Register : Window
{
public int Id { get; set; }
public string Name { get; set; }
public ObservableCollection<Roles> ItemsForRoles { get; set; }
public Register()
{
DbModelContainer db = new DbModelContainer();
ObservableCollection<Roles> ItemsForRoles = new ObservableCollection<Roles>();
var query = db.RolesSet.ToList();
foreach (var roles in query)
{
ItemsForRoles.Add(
new Roles { Id = roles.Id, Name = roles.Name }
);
}
}
}
И ComboBox:
<ComboBox Name="role" ItemsSource="{Binding ItemsForRoles}">
<ComboBoxItem Content="{Binding Name}"></ComboBoxItem>
</ComboBox>
Подскажите, пожалуйста, как в XAML коде правильно сделать привязку данных на ComboBox, так что-бы выводились все записи, а не одна. Нужно вывести из БД записи в этот ComboBox и передаваемым параметром сделать Id, а не Name.
Решение вопроса из последних комментариев (установка IsEnabled=false первому(выбранному) итему):
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Id}" Value="-1">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
Вам нужно только свойство ItemsSource
для вашего Combobox
<ComboBox Name="role" ItemsSource="{Binding ItemsForRoles}" DisplayMemberPath="Name"
SelectedValuePath="Id"
SelectedValue="{Binding Path=Id}">
</ComboBox>
то что вы отдельно задаете ComboBoxItem
перетирает ваш список ItemsSource
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Дело в том, что VM получается уж больно жирная, у меня в форме много графиков, везде в примерах под каждую V только один VM, на сколько правильно...
Я пользуюсь Xamarin for VS2015Летом я установил Xamarin на личный компьютер