Как установить источник данных для DataGrid в некоторый массив из ViewModel - PullRequest
0 голосов
/ 21 апреля 2011

Вот моя попытка:

<DataGrid 
    Grid.Row="0" 
    AutoGenerateColumns="True"  
    ItemsSource="{Binding Path = Workers}" 
    Grid.ColumnSpan="1" 
    Name="DataGrid">
</DataGrid>
private Worker[] workers;
public Worker[] Workers
{
    get
    {
        if (IsInDesignMode) return null;
        return serviceAgent.ParseFile("dataWorkers.xml").ToArray() ;
    }
    set
    {
        workers = value;
        NotifyPropertyChanged(m => m.Workers);
    }
}

Но моя DataGrid все еще пуста.Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Работает как рекламируется для меня.Следующие результаты приводят к автоматическому заполнению редактируемой сортируемой сетки для меня.Поэтому сначала начните с подделки рабочего массива, как показано ниже, и посмотрите, работает ли он.Если да, исследуйте свой метод ParseFile.Если нет, посмотрите, правильно ли вы настроили привязку данных - работайте, чтобы сначала вывести поддельный массив в представление.

  • XAML

=

<StackPanel>
        <DataGrid  AutoGenerateColumns="True"  
                   ItemsSource="{Binding Path = Workers}" 
                   x:Name="DataGrid"/>
  • Кодовый код

=

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

public class MainViewModel
{
   public Worker[] Workers        {
            get            {
                return new[]{
                               new Worker {Id = 1, Name = "Cristiano"}, 
                               new Worker {Id = 2, Name = "Lionel"},
                               new Worker {Id = 3, Name = "Xavi"}
                           };
            }
        } ....
1 голос
/ 21 апреля 2011

Попробуйте использовать DataSet или DataTable в качестве ItemsSource.Или используйте вместо этого ListBox.

Кроме того, вот еще одна практика, которую вы можете попробовать: http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.itemssource(VS.95).aspx#Y428

Это работает для меня.

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