2011-01-05 93 views
-1

嗨 我是Silverlight和MVVM逻辑的新手,我收集了许多文章,博客等等,但他们解释的很多事情都是关于如何处理数据库操作。比方说,我有一个图像控制和按钮,它应该上传一个文件,并在适当的控制下显示选定的图片。 我不知道如何用MVVM模式来做到这一点。我不希望你描述如何用silverlight上传文件,实际上问题是我不知道如何访问ViewModel类中的图像控件来设置它的源属性。MVVM模式和Silverlight命令

任何意见将不胜感激 最好的问候。

+0

如果您是MVVM的新手,请查看MVVM Light Toolkit(与您的实际问题无关) – 2011-01-05 14:28:55

回答

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属性将更新为该值。

+0

谢谢Jay,但您能否更详细地解释这一点? – saber 2011-01-05 06:20:22

+0

@ S.Amani我添加了一些示例代码。 – Jay 2011-01-05 06:29:18

+0

这就是杰伊,非常感谢你。 – saber 2011-01-05 07:23:46