Prism WPF导航参数中缺少ViewModel中的参数



我在导航到相应视图后在视图模型中消失的参数有问题。

我有这样的导航命令:

    private void EditMethod(Person person)
    {
        var parameters = new NavigationParameters {{"Person", person}};
        if (person != null)
            regionManager.RequestNavigate(RegionNames.ContentRegion, "PersonEditView", parameters);
    }

单击按钮后,命令被正确调用。

在我的ViewModel中,也可以运行navigatedto,并且人对象被传播。

    private Person _selectedPerson;
    public Person Person
    {
        get => _selectedPerson;
        set => SetProperty(ref _selectedPerson, value);
    }
    public PersonEditViewModel()
    {
    }
    public void OnNavigatedTo(NavigationContext navigationContext)
    {
        Person = (Person) navigationContext.Parameters["Person"];
    }

但是,当显示我的视图时,人= null且未显示数据。看来显示的视图已粘到另一个没有填充数据的ViewModel实例。

奇怪的是,ViewModel构造函数是两次运行的,而Onnavigigated仅运行一次。

我正在使用干燥的IOC容器和棱镜7。

根据 @mm8在评论中所说的话 - 错误我最终在我看来得到了两个模型视图声明:

         xmlns:ViewModels="clr-namespace:Fitto.Core.Persons.ViewModels"
         mvvm:ViewModelLocator.AutoWireViewModel="True" 

删除第一个并仅留下Prism自动射击后,一切正常。

最新更新