I m new в WPF и MVVM (PRISM) (честно говоря, я пришел из java), я создал веб-сервис, который взаимодействует с моей БД, и я делаю свои вызовы веб-службы в своей ViewModel Класс. Я пробовал все, что нашел в сети, используя наблюдаемые коллекции, внедряя INotifyPropertyChanged, OnPropertyChanged .. но, похоже, работает, так что теперь (временно) я создал TimerDispacher, который делает все вызовы WS в ViewModel каждую секунду ... но я уверен, что это не самый лучший способ сделать это (если это не самый худший)Обновление элементов пользовательского интерфейса в WPF MVVM
теперь я хочу интерфейс реагировать на все изменения в БД
Вот пример кода логики в моем классе ViewModel и PLZ скажите мне, где я ошибся ... я хочу, чтобы мой код использовал большую часть функций WPF и не использовал такие глупые решения, как таймеры ...
public class MyViewModel : ViewModelBase
{
private ObservableCollection<SomeClass> _listeData;
public ObservableCollection<SomeClass> ListeData{
set
{
_listeData= value;
OnPropertyChanged("ListeData");
}
get { return _listeData; }
}
private string _textData;
public string TextData
{
get { return _textData; }
set
{
_textData = value;
OnPropertyChanged("TextData");
}
}
//Ctor
protected internal MyViewModel ()
{
InitData();
SetTimer();
}
public void InitData()
{
GetTextData();
GetListeData();
}
protected void GetTextData(string param)
{
using (var proxy = new WCFServiceClient())
{
TextData = proxy.GetTextData(param);
}
}
protected void GetListeData(string param)
{
using (var proxy = new WCFServiceClient())
{
ListeData = new ObservableCollection<SomeClass> (proxy.GetListeData(param));
}
}
protected void dispatcherTimer_Tick(object sender, EventArgs e)
{
InitData();
}
private void SetTimer()
{
var dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
dispatcherTimer.Start();
}
}
Что вызывает изменение данных? Изменяется ли база данных автоматически (откуда-то вне вашего приложения) или вы изменяете данные только из своего приложения? – LionAM
Изменения базы данных происходят извне моего приложения. я просто прочитал данные и покажу их. –