111,098
社区成员




public partial class Form1 : Form
{
MyStruct x = new MyStruct();
MyClass x1=new MyClass();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
x.name = "a";
x1.name="a";
this.textBox1.DataBindings.Add("Text", x, "name");
this.textBox2.DataBindings.Add("Text", x1, "name");
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("结构体绑定的结果:"+x.name+"无法自动反应出更新的值");
MessageBox.Show("引用对象绑定的结果:"+x1.name+"能自动反应出更新的值");
}
}
public struct MyStruct
{
public string name { get; set; }
}
class MyClass
{
public string name { get; set; }
}
这是一个winfrom的简单窗体,运行以后你可以看到两个textbox上都绑定一个对象,这时候你更改两个textbox的值,然后点击按钮,你会发现绑定了结构体的textbox无论你输入什么,他都会弹出最初的那个值“a”,而绑定引用对象的textbox,则你输入什么他就会弹出你输入的值
ps:其实现在web方面也有mvvm化的倾向,js版的mvvm如今也在大规模运用,google有AngularJs,第3方还有KnockoutJ