CodeProjectのこの記事に従って、WPFとMVVMを使用するアプリケーションを作成しました。
私は、を持っているビューを持ってTVSeriesViewいTVSeriesViewModelます。これら2つは、記事の後に行われるDataTemplateを使用して接続されます。
<DataTemplate DataType="{x:Type Implementation:TVSeriesViewModel}">
<TVSeriesLibrary:TVSeriesView />
</DataTemplate>
TVSeriesViewModelで名前が付けられたプロパティがあるので、この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