Шаблон MVVM и команды Silverlight - PullRequest
0 голосов
/ 05 января 2011

Привет Я новичок в Silverlight и логике MVVM, я перечитал много статей, блогов и т. Д., Но многие вещи, которые они объяснили, касаются работы с базой данных. Допустим, у меня есть элемент управления изображением и кнопка, которая должна загрузить файл, а также показывает выбранное изображение в соответствующем элементе управления. Я не знаю, как это сделать с помощью шаблона MVVM. Я не хочу, чтобы вы описали, как загрузить файл с помощью Silverlight, на самом деле проблема в том, что я не знаю, как мне получить доступ к элементу управления изображениями в классе ViewModel, чтобы установить его свойство source.

Любой совет буду благодарен С наилучшими пожеланиями.

1 Ответ

2 голосов
/ 05 января 2011

У вас нет доступа к элементам управления в модели представления, вы выставляете свойства.

Представление, в свою очередь, привязывается к свойствам, предоставляемым моделью представления. В MVVM для вида DataContext установлена ​​модель вида.

Вид:

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

ViewModel:

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 имеет значение bound для InputText собственность. Если вы введете что-то еще в текстовое поле, свойство InputText модели представления будет обновлено до этого значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...