Мои данные не отображаются в таблице данных - PullRequest
0 голосов
/ 26 февраля 2012
dg.ItemsSource=GetList();

Я отлаживаю программу и вижу, что ItemSource получает полные элементы, но в сетке вообще ничего не отображается.Я также хотел бы знать, как я могу закрепить свой элемент управления сеткой данных в окнах так, чтобы он также изменял свой размер после изменения размера родительских окон?Спасибо

{ ОБНОВЛЕНИЕ }

Я wpf новый ученик.Я думаю, что использование только исходного кода выше также может автоматически связать источник данных с указанным элементом управления.Я не думаю о создании цикла для вставки элемента за элементом в сетку.Я сделаю это, но мне нужно, чтобы вы помогли мне сказать, правильно ли то, что я думаю.

Мой список данных - это список класса, содержащий строковые элементы

    public class Author
    {
        public string Name { get; set; }
        public DateTime PostedDate { get; set; }
        public string ProjectTitle { get; set; }
        public string Content { get; set; }
        public string Link { get; set; }
    }

1 Ответ

0 голосов
/ 26 февраля 2012

Проверьте свойства AutoGenerateColumns, Height, Width, HorizontalAlignment и VerticalAlignment в сетке.Если вы просто перетащите его из панели инструментов на свою область разработки XAML, этот код будет сгенерирован:

<DataGrid AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" Margin="254,64,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="200" />

Если изменить его на следующее:

<DataGrid HorizontalAlignment="Stretch" Name="dataGrid1" VerticalAlignment="Stretch"/>

должно решить обеваши проблемы.

РЕДАКТИРОВАТЬ: вы не указали, какой тип элементов содержит ваш список, но имейте в виду, что автоматически сгенерированные столбцы будут привязаны к общедоступным свойствам ваших элементов списка.

EDIT2: Теперь, когда вы добавили тип элемента списка, вот пример:

MainWindow.xaml.cs:

public partial class MainWindow: Window
{
  public MainWindow()
  {
    InitializeComponent();

    List<Author> list = new List<Author> 
    {
      new Author { Name = "X Y", Content = "blah" },
      new Author { Name = "W Z", Content = "blah blah" },
      new Author { Name = "N N", Content = "blah blah blah" },
      new Author { Name = "M M", Content = "blah blah blah blah" },
    };
    dataGrid1.AutoGenerateColumns = true;
    dataGrid1.ItemsSource = list;
  }
}

public class Author
{
  public string Name { get; set; }
  public DateTime PostedDate { get; set; }
  public string ProjectTitle { get; set; }
  public string Content { get; set; }
  public string Link { get; set; }
}

MainWindow.xaml:

<Window x:Class="WpfApplication1.MainWindow"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          Title="MainWindow" Height="350" Width="525">
  <Grid>
     <DataGrid HorizontalAlignment="Stretch" Name="dataGrid1" VerticalAlignment="Stretch"/>
  </Grid>
</Window>

Вывод:

Sample output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...