CodeProjectのこの記事に従って、WPFとMVVMを使用するアプリケーションを作成しました。
私は、を持っているビューを持ってTVSeriesView
いTVSeriesViewModel
ます。これら2つは、記事の後に行われる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
次に、が表示されたときにパラメータ(オブジェクト)をViewModelに渡す方法を知っている人はいTVSeriesView
ますか?
そして最後に、ビュー内のリソースに直接アクセスする方法を知っている人はいますか?たとえば、データバインディングを使用せず、代わりに次のように画像を直接設定したい場合:
myImage.ImageSource = myImageSource