winform mvvm
if (!mvvmContext1.IsDesignMode)
InitializeBindings();
这段代码的意思是:如果当前应用程序不是处于设计模式(即程序正在运行),就调用InitializeBindings
方法来初始化视图与视图模型之间的绑定。
void InitializeBindings()
{
var fluent = mvvmContext1.OfType<MainViewModel>();
}
MainViewModel 调用 选择MainViewModel类型
void InitializeBindings(){var fluent = mvvmContext1.OfType<MainViewModel>();fluent.SetBinding(textEdit1,e=>e.Text,v=>v.TextEditContent);fluent.SetBinding(textEdit2,e=>e.Text,v=>v.TextEditContent2);fluent.BindCommand(simpleButton1,it=>it.ChangeTextEditOne());}
控件实例 e=>e.Text
这是一个lambda表达式,用于指定目标控件的绑定属性。
e:表示目标控件textEdit1。
e.Text:表示目标控件textEdit1的Text属性
v=>v.TextEditContent
这也是一个lambda表达式,用于指定绑定的源属性。v:表示绑定的源对象,可能是某种视图模型(ViewModel)或数据模型。
v.TextEditContent:表示源对象的TextEditContent属性。这里表示绑定的源属性是v的TextEditContent属性public virtual string TextEditContent { get; set; } = "TextEditOne";
绑定是属性必须public virtual 属性getset 且有初始值
这个绑定有点类似wpf的绑定了
不过需要一个中间量 并且是双向绑定 TwoWay