Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 DataGridComboBoxColumn биндинг  [new]
Fet Frumos
Member

Откуда:
Сообщений: 113
Есть приложение WPF + работа с данными в Code First. Модель
public class Person 
{
   public int Id {get; set;}
   public string Name {get; set;}
   public virtual Country Country {get ;set;}
}

public class Country
{

   public int Id {get; set;}
   public string Name {get; set;}
} 

Нужно выводить в грид Person.Name и Country.Name. Задача тривиальная, но для DataGridComboBoxColumn ответа не нашел. Последний вариант(неработающий). В базе значения есть, комбобокс пустой.

 <DataGrid name ="gridPerson" AutoGenerateColumns="False">
                        <DataGrid.Columns>
                            <DataGridTextColumn 
                                                Binding="{Binding Name}"
                                                Header="Person Name" />
                            <DataGridComboBoxColumn Header="CountryName" 
                                                SelectedItemBinding="{Binding County}" 
                                                SelectedValueBinding="{Binding Path=Id}" 
                                                SelectedValuePath="Name" 
                                                DisplayMemberPath="Name" />

                        </DataGrid.Columns>
           </DataGrid>


код заполнения
 private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        personContext = new PersonContext();
        personContext.Persons.Load();
        personContext.Counties.Load();
        gridPerson.ItemSource = personContext.Persons.local; 
    }

контекст
 public class PersonContext : DbContext
    {

       public DbSet<Person> Persons { get; set; } 
       public DbSet<Country> Countries { get; set; }
    }     


Подскажите как отобразить название страны в гриде?
30 июл 13, 14:02    [14637354]     Ответить | Цитировать Сообщить модератору
 Re: DataGridComboBoxColumn биндинг  [new]
Fet Frumos
Member

Откуда:
Сообщений: 113
Почитал в сети об этой проблеме. На мсдн пишут - Чтобы заполнить раскрывающийся список, сначала установите ItemsSource свойство ComboBox с помощью одного из следующих параметров.

Статический ресурс. Дополнительные сведения см. в разделе Расширение разметки StaticResource.

x: Статическая сущности кода. Дополнительные сведения см. в разделе Расширение разметки x:Static.

Встроенная коллекция ComboBoxItem типы.

Попробовал это работает, но для этого нужно создавать отдельный класс, в программе(в коде) насколько я понимаю я не могу использовать этот класс. В моей программе будет не один такой комбобокс - для каждого создавать отдельный класс? должно быть более оптимальное решение.
30 июл 13, 19:28    [14639429]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить