ничего не отображается в датагрид wpf - PullRequest
0 голосов
/ 02 марта 2011

Привет Я использую DataGrid View. Данные добавляются в таблицу, и из окна просмотра я вижу, что в таблицу включена 1 строка, но в сетке данных ничего не отображается.

Вот код:

 DataTable PopulateDataGrids(DataGrid grid, List<ReterivedEmailData> data)
        {
            DataTable table = new DataTable();
            table.Columns.Add("Sr No");
            table.Columns.Add("Company Name");
            table.Columns.Add("Email");

            int count = 0;

            DataRow row;

            foreach (ReterivedEmailData item in data)
            {
                count++;
                row = table.NewRow();
                row["Sr No"] = count.ToString();
                row["Company Name"] = item.Name;
                row["Email"] = item.Email;
                table.Rows.Add(row);
            }
            return table;
        }

Это вызов метода:

dataGridBoatCompanyList.DataContext = PopulateDataGrids(dataGridBoatCompanyList, boat);

XAML разметка:

<DataGrid AutoGenerateColumns="True" Height="322" HorizontalAlignment="Left" Margin="6,6,0,0" Name="dataGridBoatCompanyList" VerticalAlignment="Top" Width="500" />

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Попробуйте добавить ItemsSource="{Binding}" к вашей сетке

<DataGrid DataContext="{Binding}" AutoGenerateColumns="True" Height="322" HorizontalAlignment="Left" Margin="6,6,0,0" Name="dataGridBoatCompanyList" VerticalAlignment="Top" Width="500" />

также, вы в своем методе, PopulateDataGrids() первый параметр не используется. Если все, что вы пытаетесь сделать, это заполнить сетку, то вы можете пропустить этот метод и просто использовать

dataGridBoadCompanyList.ItemsSource=  new ObservableCollection<ReterivedEmailData>(boat); 

EDIT:

Если я попробую это

void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            dataGridBoatCompanyList.ItemsSource =
                new ObservableCollection<ReterivedEmailData>(new[]
                                                                 {
                                                                     new ReterivedEmailData
                                                                         {Email = "dfsd", Name = "fadsfds"}
                                                                 });
        }

И

<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="True" Height="322" HorizontalAlignment="Left" Margin="6,6,0,0" Name="dataGridBoatCompanyList" VerticalAlignment="Top" Width="500" />

Я получаю такой заполненный список

enter image description here

1 голос
/ 02 марта 2011

Трудно сказать, не видя определения XAML вашей DataGrid, но, возможно, вы хотите сделать

dataGridBoatCompanyList.ItemsSource = PopulateDataGrids(dataGridBoatCompanyList, boat);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...