2012-02-28 27 views
0

私はかなり新しいWPFですので、ここで間違っているのは本当にわかりません。私は現在の時間(Datetime.Now)を表示し、ウィンドウ上のラベルに更新したい。この時間は、データベースからデータをロードするメソッド(「最後に更新された」アイデアなど)で更新するために呼び出されます。ユーザーがログインしていると、このmethoudは、(スレッド上のタイマーが保管)2分ごとに呼ばれています。私は、時間のオブジェクトのための次のクラスを持っている...ウィンドウのクラスのコンストラクタでWPFのラベルにDateTimeを更新する

public class UpdatingTime : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 
    private DateTime _now; 

    public UpdatingTime() 
    { 
     _now = DateTime.Now; 
    } 

    public DateTime Now 
    { 
     get { return _now; } 
     private set 
     { 
      _now = value; 

      if (PropertyChanged != null) 
      { 
       PropertyChanged(this, new PropertyChangedEventArgs("Now")); 
      } 
     } 
    } 

    public void Update() 
    { 
     Now = DateTime.Now; 
    } 
} 

、私が持っています...

updateTime.Update(); 

することにより、データベース、私は更新を呼び出す()メソッドからデータをロードする方法では...

UpdatingTime updateTime = new UpdatingTime(); 
    lastUpdate.DataContext = updateTime; 

私は私のデータバインディングを考えるような(しかし問題であり、私はかなり新しく言った) 。 XAMLファイル内の私のラベルは

 <Label Name="lastUpdate" Margin="10" Height="auto" Content="{Binding Source updateTime, Path=Now}" 
       Visibility="Hidden" FontSize="20" /> 

はユーザーがログインしたら、私は可視に設定しているため、視認性が隠されているという理由がある

が、私はそれをテストしてきたと私は確信しているのではない...ように見えます問題。明確にするために、バックエンドコードは、対応するxamlファイル(例:Window.xaml、Window.xaml.cs)のコードビハインドファイル内にあるため、参照がないとは思われません。

問題は、アプリケーションを実行すると、何も表示されない(コンパイルされ、例外がスローされない)ということです。私は何が間違っているのか分かりません、もし誰かがこれについて少し明るい光を放つことができたら、私は大いに感謝するでしょう。

また、学習に役立つリソースや、参考になったWPFに慣れ親しんだことがあれば、それはすばらしいことです。私はDataContextが本当に何であるか、私が正しく使用しているかどうかはわかりません。

ありがとうございました。

答えて

3

コンテンツのBindingステートメントに構文エラーがあり、間違っています。 は次のようになります。

Content="{Binding Now}" 

または(同一):

Content="{Binding Path=Now}" 

'ソース' の必要がありません(とあなたがバインディングで複数のプロパティを持っている場合 - あなたはカンマを持っている必要があります)。 WPFリソースについて

、[WPF]については、このサイト内の検索 - 最も多くの票を持つ問題は、リソースの要約です:MVVM: Tutorial from start to finish?

+0

ちょっと感謝ウリ!それは今更新されていませんが、表示されます...私は時間にラベルdatacontextを設定したので、 'Source'は不要ですか?再度、感謝します。 – Ryan

+0

'ソース'は必要ありません。 lastUpdate.DataContextを設定しているときにコードを設定しています。私はあなたのコードがUIを更新するのを妨げる何も見ることができません。構文を再確認してください。頻繁に人々はTypoをイベントの発生時にプロパティの名前にします(コンパイラはプロパティが存在するかどうかを確認しません)。デバッガをUpdate関数からsetterを介して実行し、イベントが発生したことを確認します。それを超えて、私は何をすべきか分からない。 – Uri

+0

更新するにはちょっとタイプミスがありました。もう一度ありがとう! – Ryan

関連する問題