我创建了一个在this article from CodeProject之后使用WPF和MVVM的应用程序。
我有一个TVSeriesView
视图,其中有一个TVSeriesViewModel
。这两个是使用DataTemplate连接的,这是在文章之后完成的。
<DataTemplate DataType="{x:Type Implementation:TVSeriesViewModel}">
<TVSeriesLibrary:TVSeriesView />
</DataTemplate>
我的想法是将我的模型TVSeries
传递给此ViewModel,因为我在ViewModel中有一个名为TVSeries
的属性。设置此属性后,我将填充其他属性,例如Title
,Cover
等。这些属性应绑定到视图中的控件。
public class TVSeriesViewModel : ViewModelBase, ITVSeriesViewModel
{
private TVSeries _tvSeries;
private string _title;
private ImageSource _cover;
public TVSeries TVSeries
{
get
{
return this._tvSeries;
}
set
{
this._tvSeries = value;
}
}
public string Title
{
get
{
return this._title;
}
set
{
this._title = value;
OnPropertyChanged("Title");
}
}
public ImageSource Cover
{
get
{
return this._cover;
}
set
{
this._cover = value;
OnPropertyChanged("Cover");
}
}
}
首先,这听起来像是正确的做法吗?
接下来,有人知道在显示TVSeries
时如何将参数(TVSeriesView
对象)传递给ViewModel?
最后,有谁知道如何直接访问视图中的资源?例如,如果我不想使用数据绑定,而是想直接设置图像:
myImage.ImageSource = myImageSource
答案 0 :(得分:0)
View和ViewModel一起是Model的可能表示之一。
您可以传递最终负责数据访问的存储库句柄 模型的具体/抽象对象通过构造函数的依赖注入或 依赖注入,通过属性/方法或 您可以更粗略地在VM中编写数据库访问代码(显然不建议这样做。)
我更喜欢这里给出的顺序。您的代码正在执行第三个选项。