Здравствуйте, posterbb, Вы писали:
P>Проблема следующая: P> DB.AddToSites(site); P> DB.SaveChanges();
//Убедитесь, что после этих действий у вас DB.Sites не равно null P> GridSites.RefreshDataSource();
//и попробуйте сделать так
//GridSites.DataSource = DB.Sites; P> } P>[/c#]
Здравствуйте, mrjeka, Вы писали:
M>Здравствуйте, posterbb, Вы писали:
P>>Проблема следующая: P>> DB.AddToSites(site); P>> DB.SaveChanges(); M>//Убедитесь, что после этих действий у вас DB.Sites не равно null P>> GridSites.RefreshDataSource(); M> //и попробуйте сделать так M> //GridSites.DataSource = DB.Sites; P>> } P>>[/c#]
Немного не так получилось, вот это работает
DB.AddToSites(site);
DB.SaveChanges();
DB = new NewsClientDBEntities();
GridSites.DataSource = DB.Sites;
Извините за глупый вопрос, на сколько плохо создавать еще один экземпляр
Здравствуйте, posterbb, Вы писали:
P>Извините за глупый вопрос, на сколько плохо создавать еще один экземпляр
Ну я не вижу необходимости пересоздавать объект. Особенно, если он используется другими контролами. Если еще у тех контролов стоит какое-нибудь событие на биндинг. И память, если Вы загружаете много данных.
ИМХО хотя старый объект поместится на удаление, но пока GC не пройдется, он так и будет занимать память.
Здравствуйте, posterbb, Вы писали:
P>Проблема следующая:
P>
P> private void btnEditSite_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
P> {
P> Site site = new Site();
P> site.ID = Guid.NewGuid();
P> site.Url = "1";
P> site.Login = "2";
P> site.Password = "3";
P> site.CreationDate = DateTime.Now;
P> site.EditDate = DateTime.Now;
P> DB.AddToSites(site);
P> DB.SaveChanges();
//Вспомнил решение этой хни... тупо что не работает RefreshDataSource у GridControl, зато раборает метод у GridView этого GridControla
//По умолчанию он называется gridView1
P> //GridSites.RefreshDataSource();
gridView1.RefreshData();
P> }
P>
Здравствуйте, mrjeka, Вы писали:
M>Здравствуйте, posterbb, Вы писали:
P>>Извините за глупый вопрос, на сколько плохо создавать еще один экземпляр
M>Ну я не вижу необходимости пересоздавать объект. Особенно, если он используется другими контролами. Если еще у тех контролов стоит какое-нибудь событие на биндинг. И память, если Вы загружаете много данных. M>ИМХО хотя старый объект поместится на удаление, но пока GC не пройдется, он так и будет занимать память.
Без "пересоздавания" объекта не работает. Я весь день "рефрешил" все что можно и у грида и у его View. Если связывать грид с обычной коллекцией, например List<T>, то рефреш помогает, а если использовать данные через Entity Framework, то не работает.
Здравствуйте, posterbb, Вы писали:
P>Проблема следующая:
P>Есть в БД таблица Sites(Url, Login, Password). С помощью Entity Framework получаю коллекцию объектов. Привязываю ее к xtraGrid P>
P>public partial class fmAccounts : DevExpress.XtraEditors.XtraForm
P> {
P> public NewsClientDBEntities DB { get; set; }
P> public fmAccounts()
P> {
P> InitializeComponent();
P> }
P> public fmAccounts(NewsClientDBEntities newsClientDBEntities)
P> {
P> DB = newsClientDBEntities;
P> InitializeComponent();
P> }
P> private void fmAccounts_Load(object sender, EventArgs e)
P> {
P> if(DB == null)
P> DB = new NewsClientDBEntities();
P> FillGridSites();
P> }
P> private void FillGridSites()
P> {
P> GridSites.DataSource = DB.Sites;
P> }
P>}
P>
P>GridSites — это xtraGrid. После добавления нового сайта не могу обновить грид (вновь добавленный сайт никак не хочет появляться в таблице)
P>P.S. Помогите, пожалуйста, весь день сегодня убил на это
Посмотрите метод Refresh у DB. Может в EF он поможет.
У меня Linq2Sql используется в проекте, тоже голову ломаю с рефрешем на форме. Пока что ничего не приходит в голову кроме создания нового экземпляра модели.