嗨 我是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