【问题标题】:MVVM pattern & Silverlight commandsMVVM 模式和 Silverlight 命令
【发布时间】:2011-01-05 05:28:50
【问题描述】:

嗨 我是 silverlight 和 MVVM 逻辑的新手,我读过很多文章、博客等……但他们解释的很多东西都是关于如何处理数据库操作的。假设我有一个图像控件和按钮,它应该上传文件并在适当的控件中显示选定的图片。 我不知道如何使用 MVVM 模式来做到这一点。我不想你描述如何用silverlight上传文件,实际上我不知道我应该如何访问ViewModel类中的图像控件来设置它的源属性。

任何建议将不胜感激 最好的问候。

【问题讨论】:

  • 如果您是 MVVM 新手,请查看 MVVM Light Toolkit(与您的实际问题无关)

标签: c# silverlight mvvm


【解决方案1】:

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

反过来,视图绑定到视图模型公开的属性。在 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 属性将更新为该值。

【讨论】:

  • 谢谢杰,但你能详细解释一下吗?!!
猜你喜欢
  • 2011-07-22
  • 2010-12-01
  • 2011-02-28
  • 1970-01-01
  • 2010-12-31
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
相关资源
最近更新 更多