2011-01-26 5 views
0

H Я использую SQL CE и LINQ. Я связываю свойство typeof Table с ItemSource элемента управления Datagrid из набора инструментов WPF.WPF Toolkit datagrid/не обновляет данные

Нечто подобное.

public Table<TestNick> MySource 
    { 
     get { return _tab; } 
     set 
     { 
      _tab = value; 
      NotifyPropertyChanged("MySource"); 

     } 
    } 


    <Controls:DataGrid Name="Dg" 
         ItemsSource="{Binding Path=MySource, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
         Grid.Row="0"/> 

я извлечения данных из БД с помощью LINQ:

 const string connStr = @"Spiri_SQL_CE_DB.sdf"; 
     _dc = new Spiri_SQL_CE_DB(connStr); 
     MySource = _dc.TestNick; 

Если добавить контрольную точку на последней строке я вижу все значения из таблиц TestNick, но не загружает эти данные в DataGrid.

Что плохого?

Редакция:

Я проверяю ItemSource управления DataGrid в коде позади, исходный пункт является правильным, но я вижу в DataGrid (виде) «старых данные».

Так что обязательная привязка должна быть правильной, проблема в том, что управление DataGrid не обновляет данные.

+0

Просто угадать, есть BindingExpression ошибка в окне вывода ? – DHN

+0

Связывание - это нормально, свойство ItemSource DataGrid состоит из хороших данных, но я вижу старые данные. –

+0

Вы можете удалить UpdateSourceTrigger = PropertyChanged, поскольку это не нужно –

ответ

0
  • Убедитесь, что DataGrid AutoGenerateColumns верно
  • Во время работы проверьте выходное окно, если есть какие-либо обязательные вопросы
  • Еще одна уловка, чтобы положить кнопку на представлении и написать код позади функции по щелчку, что кнопка для отладки Будет DataGrid ItemSource, если его пустая попытка вызвать ViewModel/функцию getDatagridData модели и затем увидеть, если он загружает, в случае, если он загружает это означает, что ваш NotifyPropertyChanged еще не функциональный
+0

Oki, проблема в том, что ItemSource DataGrid верен, но я не вижу фактических данных. Я вижу старые данные. –

+0

Если вы добавите кнопку на просмотр (только для цели отладки) и напишите код, чтобы вызвать функцию getData, если после этого вы увидите новые данные. Это означает, что ваш NotifyPropertyChange не работает. Вы также можете поместить точку останова в NotifyPropertyChange. Также вы используете ObservableCollection? – WhoIsNinja

+0

ObservableCollection не имеет значения, поскольку OP заменяет ссылку. –