C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DispatcherTimer,


(過去ログ 115 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■67701 / inTopicNo.1)  DispatcherTimer,
  
□投稿者/ threeaster (1回)-(2013/08/25(Sun) 19:00:59)

分類:[C#] 

C#/WPFの質問です。環境はwindow7 professional/Visual C# 2010 Express/.NET Framework 4 Clinent Profileです。

DispatcherTimerを用いて、バインディングソースを更新してウィンドウ上に表示する方法がわかりません。具体的には、以下のコードで1秒後にbbbに変わってくれません。

http://ideone.com/vVLQmz

調べてみると出てくるのは(*)のところを
BlockName.Text = "bbb";
のように直接コントロールを弄っているものは出てき、これなら動くのですが、バインディングでやるにはどうすればいいのでしょうか
引用返信 編集キー/
■67702 / inTopicNo.2)  Re[1]: DispatcherTimer,
□投稿者/ Azulean (201回)-(2013/08/25(Sun) 19:28:01)
2013/08/25(Sun) 19:28:14 編集(投稿者)
Data クラスに INotifyPropertyChanged インターフェースを実装するところかな。

public class Data : INotifyPropertyChanged
{
    private string _bindingText;
    public string BindingText
    {
        get { return _bindingText; }
        set
        {
            if (string.Equals(_bindingText, value)) return;

            _bindingText = value;
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("BindingText"));
            }
        }
    }

    public Data(string bt)
    {
        this.BindingText = bt;
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

バインドされているオブジェクトが変わったかどうかは、コントロール側からはわかりません。
このため、INotifyPropertyChaned インターフェースを実装し、イベントを発行して、状態が変わったことを伝える必要があるはずです。

引用返信 編集キー/
■67704 / inTopicNo.3)  Re[2]: DispatcherTimer,
□投稿者/ threeaster (2回)-(2013/08/25(Sun) 20:35:20)
解決しました。ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -