У вас неправильно установлены привязки, поэтому ничего не отображается.
Просто присмотритесь к своим ViewModel
, а не к привязкам.Вы пытаетесь привязать свойство с именем Name
, но ваш MovieViewModel
не предоставляет никаких свойств с таким именем.Я почти уверен, что вам сообщали об ошибках привязки (просмотрите сообщения в окне «Вывод»).
Чтобы это работало, вам нужно либо выставить свойства в ViewModel
, чтобы они соответствовали тем, с которыми вы пытаетесь связать(плохо), или измените привязки в вашем xaml
, чтобы иметь правильный путь:
<Label Content="{Binding Movie.Name}" />
<Label Content="{Binding Movie.Length}" />
<Label Content="{Binding Movie.Rating}" />
Это должно помочь вам.
Дополнительно - вы можете включить INotifyPropertyChanged
такжекласс MovieViewModel
, если вы планируете изменить объект Movie
, назначенный свойству Movie
.Пока вы будете изменять только свойства объекта Movie
, уже назначенного MovieViewModel
, все будет хорошо, но если вы попытаетесь изменить фактический объект, назначенный этому свойству, уведомления об изменениях не будут генерироваться, и ваш пользовательский интерфейс перестанет работатьправильно.
Более того - я заметил, что вы сделали ваш метод NotifyPorpertyChanged
общедоступным - я бы не советовал это делать, поскольку теперь любой может вызвать это событие.Обычный подход состоит в том, чтобы сделать такие методы частными или защищенными, в зависимости от того, хотите ли вы предоставить способ инициировать событие от наследования классов (что весьма вероятно в случае PropertyChanged
события).