Wpf Open Multi Window Mvvm - PullRequest
       3

Wpf Open Multi Window Mvvm

0 голосов
/ 09 апреля 2020

сначала извините за мой Engli sh

у меня есть класс person, у которого есть некоторые свойства

class Person
{
    //Properties
}

и Window Person Search это View Модель этого окна содержит список person и используйте Mvvm

class PersonSearchViewModel
{
    public PersonSearchViewModel(Person person)
    {
        SelectedPerson = person;
    }
    public Person SelectedPerson { set; get; }
    public ObservableCollection <Person> PersonList { set; get; }
}

и Window Person Information для вставки и обновления

class PersonInformationView : Window
{
    public PersonInformationView()
    {
        InitializeComponent();
        this.DataContex = vm;
    }

    PersonInforamtionViewModel vm = new PersonInforamtionViewModel();
    private void buttonOpenSearch_Click(object sender, RoutedEventArgs e)
    {
        PersonSearchView p = new PersonSearchView(vm.PersonInfo);
    }
}

и просмотра модели этого окна

class PersonInforamtionViewModel
{
    public Person PersonInfo { set; get; }
}

, которая мне нужна при поиске в открытом окне Из окна Информация о персоне и выбранный элемент персоны ... Изменить Авто свойство ===> PersonInfo Для достижения класса это одна обязанность

1 Ответ

0 голосов
/ 09 апреля 2020

Ваша проблема в том, что вы ведете все из поля зрения. В MVVM это должны быть виртуальные машины, которые заряжают и управляют всем. Представления - это просто обертки вокруг виртуальных машин

. В настоящее время вы создаете PersonSearchView из PersonInformationView, но это не дает вам возможности видеть PersonSearchViewModel внутри PersonSearchView, а PersonSearchViewModel, который имеет SelectedPerson.

Вместо этого вы должны создать PersonSearchViewModel из PersonInformationViewModel. Таким образом, вы можете реагировать на изменения в PersonSearchViewModel.SelectedPerson, подписавшись на PropertyChanged, или, возможно, лучше, передав делегат обратного вызова в конструктор PersonSearchViewModel, который он должен вызывать, когда человек выбирает человека.

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