私はWPFとMVVM(PRISM)に新しくなりました(正直言って私はJavaから来ています)、私は自分のDBとやりとりするWebサービスを作成して、私のViewModelクラス。 INotifyPropertyChanged、OnPropertyChanged ..を実装して、観測可能なコレクションを使用して、ネットで見つけたすべてのものを試しましたが、今は(一時的に)私はViewModelでWS呼び出しを毎秒行うTimerDispacherを作成しました...しかし、これはそれを行うための最善の方法ではありませんイム確認してください(それは最悪ではない場合)WPFでUI要素を更新するMVVM
今私はここDB
内のすべての変更に対応するためのUIは、ロジックのサンプルコードで欲しいです私の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
データベースの変更は私のアプリケーション外から発生します。私はちょうどそこからデータを読んでそれを表示します。 –