1

在 CodeProject 的这篇文章之后,我创建了一个使用 WPF 和 MVVM 的应用程序

我有一个视图,TVSeriesView,它有一个TVSeriesViewModel. 这两个使用 DataTemplate 连接,这是在文章之后完成的。

<DataTemplate DataType="{x:Type Implementation:TVSeriesViewModel}">
    <TVSeriesLibrary:TVSeriesView />
</DataTemplate>

这个想法是将我的模型传递TVSeries给这个 ViewModel,因为我有一个TVSeries在 ViewModel 中命名的属性。设置此属性后,我将填充其他属性,例如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

4

1 回答 1

0

View 和 ViewModel 一起是模型的可能表示形式之一。

您可以传递一个存储库句柄,该句柄最终将负责数据访问或模型的具体/抽象对象,通过构造函数或
依赖注入的依赖注入,通过属性/方法或更粗略的方式,您可以在 VM 中编写数据库访问代码(显然不建议这样做。)

我更喜欢这里给出的顺序。您的代码正在执行第三个选项。

于 2012-10-22T13:03:44.513 回答