Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExNavigationWpf. Как сделать чтобы в StartView отображались данные в реальном времени при разработке? #1

Open
jhon65496 opened this issue Oct 5, 2023 · 2 comments

Comments

@jhon65496
Copy link

Как сделать чтобы в StartView отображались данные в реальном времени при разработке?

ExNavigationWpf: https://github.com/bulsond/SOrusExamples/tree/master/ExNavigationWpf

Я пробую. Не получается.
Ниже привожу, что мной выполнено.


Выполнил:

  • StartView
    Добавил
    d:DataContext="{d:DesignInstance Type=vm:StartViewModel, IsDesignTimeCreatable=True}"

Код

<UserControl x:Class="MasterDetail.Views.StartView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:MasterDetail.Views"
             xmlns:vm="clr-namespace:MasterDetail.ViewModels"
             Background="#FFFFFFFF"
             d:DataContext="{d:DesignInstance Type=vm:StartViewModel, IsDesignTimeCreatable=True}"
  • StartViewModel. Добавил конструктор без параметров.
    Конструктор добавленный
 // Добавлено !!!!
        public StartViewModel()  
        {
            // _appController = appController ?? throw new ArgumentNullException(nameof(appController));

            //команды
            //EditCommand = new RelayCommand(OnEdit, CanEdit);
            //DeleteCommand = new RelayCommand(OnDelete, CanDelete);
            //CreateCommand = new RelayCommand(OnCreate, CanCreate);

            //загружаем из БД людей
            LoadPeople();
        }

Код

public class StartViewModel : IStartViewModel
{
        public event PropertyChangedEventHandler PropertyChanged;


        private readonly IAppController _appController;

        //ctor
        public StartViewModel(IAppController appController)
        {
            _appController = appController ?? throw new ArgumentNullException(nameof(appController));

            //команды
            EditCommand = new RelayCommand(OnEdit, CanEdit);
            DeleteCommand = new RelayCommand(OnDelete, CanDelete);
            CreateCommand = new RelayCommand(OnCreate, CanCreate);

            //загружаем из БД людей
            LoadPeople();
        }

      // Добавлено !!!!
        public StartViewModel()  
        {
            // _appController = appController ?? throw new ArgumentNullException(nameof(appController));

            //команды
            //EditCommand = new RelayCommand(OnEdit, CanEdit);
            //DeleteCommand = new RelayCommand(OnDelete, CanDelete);
            //CreateCommand = new RelayCommand(OnCreate, CanCreate);

            //загружаем из БД людей
            LoadPeople();
        }
@bulsond
Copy link
Owner

bulsond commented Oct 6, 2023

Вы хотите чтобы данные отображались прямо во время дизайна? Тогда эти данные должны быть подгружены в этом конструкторе без параметров. Посмотрите на метод LoadPeople(), должна произойти загрузка данных, которые прямо захардкоржены в этом методе.

Я извиняюсь. Уже давно не пишу под WPF, многое уже позабылось, так что вряд ли сейчас смогу вам ответить что-нибудь более дельное.

@jhon65496
Copy link
Author

@bulsond
Спасибо...
Направление понял... Дальше разберусь

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants