在运行时更改模型实例
本文关键字:模型 实例 运行时 | 更新日期: 2023-09-27 18:00:31
在运行时更改模型实例是否正确?我的控件绑定到第一个实例,但在程序执行期间,我想将它们绑定到另一个实例。
ViewModel类中的somewheere:
//ViewDefault - already initialized
// View - will be ready later
public string TextProperty
{
get
{
if (View != null)
{
return View.Model.text;
} return ViewDefault.Model.text;
}
set
{
if(View != null)
{
//.. logic with View.Model.text
}else{
// logic with ViewDefault.Model.text
}
RaiseOnPropertyChanged("TextProperty");
}
问题是,我必须做什么才能通知我的视图绑定内容已更改?
<Setter Property="Text" Value="{Binding MyViewModel.TextProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
*ViewDefault。模型和视图。型号有一种类型
在我看来,ViewModel
将View
与Model
链接,因此如果必须更改Model
,我将创建一个新的ViewModel
并将其附加到视图的DataContext。
视图应该由某人(最好是工厂)创建,创建视图的人也应该创建数据上下文并附加它进行
View view = new View();
view.DataContext = new ViewModel();