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

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

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

Re[3]: データバインド即時反映について


(過去ログ 108 を表示中)

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

■64244 / inTopicNo.1)  データバインド即時反映について
  
□投稿者/ take6 (1回)-(2012/11/16(Fri) 23:45:42)

分類:[C#] 

環境:C# .NET 2.0

下記コードにて、テキストボックスに入力と同時にもう片方のテキストボックスへ値を反映するようにしたいと試行錯誤しています。
lostfocusで値は反映できるのですが、入力時に即時反映をやるにはどうやったらよいのでしょうか。XAMLのサンプルはみかけるのですが、
C#コードのものがなく、困っています。よろしくお願いします。


    public partial class Form1 : Form
    {

        test t = new test();

        public Form1()
        {
            InitializeComponent();

            textBox1.DataBindings.Add("Text",t,"name");
            textBox2.DataBindings.Add("Text", t, "name");
        }

        public class test : INotifyPropertyChanged
        {
            private string name;

            public event PropertyChangedEventHandler PropertyChanged;

            public string Name
            {
                get { return name; }

                set
                {
                    name = value;
                    OnPropertyChanged("Name");
                }
            }

            private void OnPropertyChanged(string name)
            {
                PropertyChangedEventHandler handler = PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(name));
                }
            }
        }
    }

引用返信 編集キー/
■64247 / inTopicNo.2)  Re[1]: データバインド即時反映について
□投稿者/ nobb (6回)-(2012/11/17(Sat) 09:10:28)
No64244 (take6 さん) に返信

テキストボックスを選択し、プロパティウィンドウのDataBindingの項目を開くと詳細という項目があるので
そこにある[...]ボタンをクリックしダイアログを表示させる。
バインドさせている項目の[OnValidation]を[OnPropertyChange]に変える。

以上でどうでしょうか?
ちなみに記憶の中だけで書いていますので多少の違いは汲み取って頂けるとありがたいです。
引用返信 編集キー/
■64248 / inTopicNo.3)  Re[1]: データバインド即時反映について
□投稿者/ 魔界の仮面弁士 (90回)-(2012/11/17(Sat) 11:27:35)
No64244 (take6 さん) に返信
> 入力時に即時反映をやるにはどうやったらよいのでしょうか。


//textBox1.DataBindings.Add("Text", t, "name");
//textBox2.DataBindings.Add("Text", t, "name");

textBox1.DataBindings.Add("Text", t, "Name", false, DataSourceUpdateMode.OnPropertyChanged);
textBox2.DataBindings.Add("Text", t, "Name", false, DataSourceUpdateMode.OnPropertyChanged);
引用返信 編集キー/
■64321 / inTopicNo.4)  Re[2]: データバインド即時反映について
□投稿者/ take6 (2回)-(2012/11/26(Mon) 10:11:30)
返事が遅くなり申し訳ありません。

nobbさん
ご回答ありありがとうございます。
ご回答いただいた方法は、プロパティからデータソースを指定している場合に?出来る操作のようです。
今回はコードからデータソースを指定しているため、魔界の仮面弁士さんの回答がマッチしていました。

魔界の仮面弁士さん
ご回答ありがとうございます。
まさに希望していた処理が行えました!

無事に解決しました、ありがとうございました。
お二方、今後ともよろしくお願いします。
解決済み
引用返信 編集キー/
■64322 / inTopicNo.5)  Re[3]: データバインド即時反映について
□投稿者/ 魔界の仮面弁士 (93回)-(2012/11/26(Mon) 10:58:08)
No64321 (take6 さん) に返信
> ご回答いただいた方法は、プロパティからデータソースを指定している場合に?出来る操作のようです。
> 今回はコードからデータソースを指定しているため、魔界の仮面弁士さんの回答がマッチしていました。

その場合にも、OnPropertyChanged を指定したコードが *.designer.cs 内に
出力されるはずなので、それを参考に出来るかと思います。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -