У меня проблема. Ищите много, но не можете найти решение. Мне нужно, из другого потока, обновить ObservableCollection без зависания пользовательского интерфейса. Я использую NET4.0. Этот код не позволяет мне видеть сообщение «ProgressRing» и «Поиск». Спасибо!Обновление ObservableCollection из другого потока
private void Search()
{
ShowMessage = "Searching..."; // Message while the search is made.
IsBusy = true; // Show WPF Toolkit BusyIndicator
ShowProgressRing = true; // To show a ProgressRing in BusyIndicator
Task.Factory.StartNew(() =>
{
Articles = new ObservableCollection<Article>();
/////////////////////////////
//// Simulate SQL query ////
///////////////////////////
for (var i = 0; i < 1000; i++)
{
Articles.Add(new Article
{
Code = i.ToString(),
Name = "PRODUCT NAME",
Price = 1m
});
}
}).ContinueWith(x =>
{
IsBusy = false; // Hide
}, TaskScheduler.FromCurrentSynchronizationContext());
}
EDIT
private bool _showProgressRing;
public bool ShowProgressRing
{
get { return _showProgressRing; }
set
{
_showProgressRing = value;
RaisePropertyChanged("ShowProgressRing");
}
}
private bool _isBusy;
public bool IsBusy
{
get { return _isBusy; }
set
{
_isBusy = value;
RaisePropertyChanged("IsBusy");
}
}
private string _showMessage;
public string ShowMessage
{
get { return _showMessage; }
set
{
_showMessage = value;
RaisePropertyChanged("ShowMessage");
}
}
My VM наследуют от ViewModelBase (MVVM Light)
Hi, thx! Проверьте Редактировать сообщение. – avechuche
Что относительно класса статьи? – MohamedHamza
Его простой класс, имеет только 5 параметров – avechuche