Почему при первом запуске моего приложения WPF отображается имя класса ViewModel вместо ее содержимого (свойств)?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему при первом запуске моего приложения WPF отображается имя класса ViewModel вместо ее содержимого (свойств)?

Сообщение Anonymous »

Я привязываю MainWindowViewModel к DataContext MainWindow.
Затем я инициализирую эту MainWindowViewModel определенным itemsPageViewModel.
Проблема в том, что при запуске я вижу имя класса itemsPageViewModel вместо его содержимого:
Изображение

Однако после переключения страниц через кнопки (RelayCommands) теперь та же ViewModel показывает его содержимое:
Изображение

Обе операции выполняются через ту же строку кода:
CurrentPageViewModel = _itemsPageViewModel
Как это может давать разные результаты?
КОД
MainWindow.xaml






















MainWindow.xaml.cs
using System.Windows;
using ListItemUI.InfoPage.ViewModels;
using ListItemUI.ListItemPage.ViewModels;
using ListItemUI.ViewModels;

namespace ListItemUI.Views
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow(IPageFactory itemPageFactory, IPageFactory infoPageFactory)
{
InitializeComponent();
var mainWindowVM = new MainWindowViewModel(itemPageFactory,infoPageFactory);
DataContext = mainWindowVM;
}
}
}

MainWindowViewModel.cs
using System;
using System.Windows.Input;
using ListItemUI.ListItemPage.ViewModels;

namespace ListItemUI.ViewModels
{
public class MainWindowViewModel : ViewModelBase
{
private readonly IListItemUIViewModel _itemsPageViewModel;
private readonly IListItemUIViewModel _infoPageViewModel;
public ICommand SelectItemsPageViewModel { get; }
public ICommand SelectInfoPageViewModel { get; }

public object CurrentPageViewModel
{
get { return _currentPageViewModel; }
set
{
_currentPageViewModel = value;
RaisePropertyChanged(() => CurrentPageViewModel);
}
}
private object _currentPageViewModel;

public MainWindowViewModel(IPageFactory itemsPageFactory, IPageFactory infoPageFactory)
{
_itemsPageViewModel = itemsPageFactory.CreatePage();
_infoPageViewModel = infoPageFactory.CreatePage();

SelectItemsPageViewModel = new RelayCommand(_ =>
{
CurrentPageViewModel = _itemsPageViewModel;

});

SelectInfoPageViewModel = new RelayCommand(_ =>
{
CurrentPageViewModel = _infoPageViewModel;
});

CurrentPageViewModel = _itemsPageViewModel;

}

}
}

ListItemPage.xaml (dataTemplates)



















App.xaml
















Подробнее здесь: https://stackoverflow.com/questions/514 ... iewmodel-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Экранный диктор специальных возможностей читает имя класса модели вместо содержимого сетки приложения WPF.
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как правильно отправить событие ViewModel при запуске активности в функции инициализации ViewModel?
    Anonymous » » в форуме Android
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как обновить ViewModel из другой ViewModel в WPF MVVM?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как обновить ViewModel из другой ViewModel в WPF MVVM?
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как обновить ViewModel из другой ViewModel в WPF MVVM?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»