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

わんくま同盟

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

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


■89172 / )   双方向データバインドが反映されない
□投稿者/ B.B (5回)-(2018/11/04(Sun) 20:05:00)

分類:[C#] 

Windows10
Visual Studio 2017

MenuStrip、TextBox、Buttonを配置したWindowsフォームで以下のようなコードを動作させてtextBox1に文字を入力します。

button1をクリックすると入力した文字列が表示されます。
ToolStripMenuItemをクリックすると入力前の文字列が表示されます。

先にbutton1をクリックして反映させた後でToolStripMenuItemをクリックすれば反映されます。

ToolStripMenuItemクリックだけで反映させるにはどのようにすればよいでしょうか。
よろしくお願いいたします。


using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
Binding binding = new Binding();
public Form1()
{
InitializeComponent();
textBox1.DataBindings.Add("Text", binding, "InputText");
}

private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(binding.InputText);
}

private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(binding.InputText);
}
}

public class NofityPropertyChanged : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(String info)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info));
}
}

public class Binding : NofityPropertyChanged
{
private string _InputText;
public string InputText
{
get { return _InputText; }
set
{
_InputText = value;
NotifyPropertyChanged(nameof(InputText));
}
}
}
}


返信 編集キー/


管理者用

- Child Tree -