嗨 我是Silverlight和MVVM逻辑的新手,我收集了许多文章,博客等等,但他们解释的很多事情都是关于如何处理数据库操作。比方说,我有一个图像控制和按钮,它应该上传一个文件,并在适当的控制下显示选定的图片。 我不知道如何用MVVM模式来做到这一点。我不希望你描述如何用silverlight上传文件,实际上问题是我不知道如何访问ViewModel类中的图像控件来设置它的源属性。MVVM模式和Silverlight命令
任何意见将不胜感激 最好的问候。
嗨 我是Silverlight和MVVM逻辑的新手,我收集了许多文章,博客等等,但他们解释的很多事情都是关于如何处理数据库操作。比方说,我有一个图像控制和按钮,它应该上传一个文件,并在适当的控制下显示选定的图片。 我不知道如何用MVVM模式来做到这一点。我不希望你描述如何用silverlight上传文件,实际上问题是我不知道如何访问ViewModel类中的图像控件来设置它的源属性。MVVM模式和Silverlight命令
任何意见将不胜感激 最好的问候。
您不会访问视图模型中的控件,而是显示属性。
该视图依次绑定到视图模型公开的属性。在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
属性将更新为该值。
如果您是MVVM的新手,请查看MVVM Light Toolkit(与您的实际问题无关) – 2011-01-05 14:28:55