将参数传递给ViewModel并显示其数据
我已经创建了一个使用WPF和MVVM的应用程序,它遵循this article from CodeProject。将参数传递给ViewModel并显示其数据
我有一个看法,TVSeriesView
,它有一个TVSeriesViewModel
。这两个连接使用文章后面的DataTemplate完成。
<DataTemplate DataType="{x:Type Implementation:TVSeriesViewModel}">
<TVSeriesLibrary:TVSeriesView />
</DataTemplate>
的想法是通过我的模式,TVSeries
,这个视图模型,因为我有一个在视图模型命名为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");
}
}
}
首先,这听起来像是正确的做法吗?
接下来,有没有人知道如何将TVSeriesView
显示时传递参数(TVSeries
对象)到ViewModel?
最后,有没有人知道我可以直接访问视图中的资源?例如,如果我不希望使用数据绑定,而是希望直接设置图像是这样的:
myImage.ImageSource = myImageSource
查看和视图模型一起是模型的可能的表示之一。
您可以通过一个存储库手柄这将是最终的通过构造函数或
依赖注入通过依赖注入的数据访问或新型 混凝土/抽象对象负责,通过属性/方法或 在你可以写更粗暴的方式虚拟机中的数据库访问代码(显然不建议)。
我宁愿按照这里给出的顺序。你的代码正在做第三种选择。
我不确定我是否理解。我可以请你举个例子吗? – simonbs
为什么在不想使用绑定的情况下创建视图模型? – blindmeis
你是对的。我相信我会使用数据绑定。我只是认为有时可能会更容易直接访问控件。 – simonbs