MVVM模式& Silverlight命令

时间:2011-01-05 05:28:51

标签: c# silverlight mvvm

您好 我是Silverlight和MVVM逻辑的新手,我已经阅读过许多文章,博客等等,但他们解释的许多内容都是关于如何处理数据库操作的。假设我有一个图像控件和按钮,它应该上传文件并以适当的控制方式显示所选图片。 我不知道如何用MVVM模式做到这一点。我不想让你描述如何使用silverlight上传文件,实际问题是我不知道如何在ViewModel类中访问图像控件以设置其源属性。

任何建议都将不胜感激 最诚挚的问候。

1 个答案:

答案 0 :(得分:2)

您不在视图模型中访问控件,而是公开属性。

视图又绑定到视图模型公开的属性。在MVVM中,视图的DataContext设置为视图模型。

查看:

<Window … namespaces, etc. />
    <Grid>
        <TextBox Text={Binding InputText, Mode=TwoWay}
    </Grid>
</Window>

视图模型:

public class MyViewModel : INotifyPropertyChanged
{
    string _text = "Enter text here";
    public string Text
    {
        get { return _text; }
        set 
        { 
            _text = value;
            // raise property change notification
        }
    }

    // implement INPC so the view will know when the view-model has changed
}

现在,如果您将视图窗口的DataContext属性设置为MyViewModel的实例,则文本框将包含文本“在此处输入文本”,因为其Text属性为绑定InputText属性。如果在文本框中键入其他内容,则视图模型的InputText属性将更新为该值。