【问题标题】:RaisePropertyChanged not updating properties when function called from another viewmodel从另一个视图模型调用函数时,RaisePropertyChanged 不更新属性
【发布时间】:2018-12-07 16:58:59
【问题描述】:

该类用于绑定列表框和选定列表中的搜索结果,它将在概览面板中显示结果,两者都是不同的视图模型。

public class SearchClients : Client

{ 公共客户客户;

private void SelectedClient(int PartyId)
{
    List<Client> c = this.fileService.FindClients(PartyId, "", "").ToList();
    if (c.Count > 0)
    {
        Client = c[0];
    }
    OverviewPageViewModel viewModel = this.injector.Resolve<OverviewPageViewModel>("OverviewPage");
    viewModel.SelectedClient(Client);
}

}

搜索面板视图模型

 public class SearchBar : BaseContentViewModel
{ 
       private void FindClients()
    {
        List<Client> C = fileService.FindClients(0, SrchFirstName, SrchLastName).ToList();

}

    public ICommand FindClient
    {
        get
        {
            return new RelayCommand(FindClients);
        }
    }
}

结果面板视图模型

   public class OverviewPageViewModel: BaseContentViewModel  
{
    public void SelectedClient(Client Client)
    { 
        Title = Client.TitleID; 
        FirstName = Client.FirstName;
        LastName = Client.LastName;

    }
}

【问题讨论】:

  • 尝试正确地构建您的问题,而不是直接粘贴代码。阅读链接[stackoverflow.com/help/how-to-ask]
  • 我不明白问题所在。如果基本视图模型位于不同的 dll 中,那么我偶尔会发现我必须在叶子类上显式粘贴 inpc 接口,然后才会注意到它确实实现了 inpc。也许这与你的问题无关。我不知道。

标签: wpf mvvm-light


【解决方案1】:

ViewModel 在标签导航中被分配了基类 IContentViewModel,它应该使用具有所有属性的 OverviewPageViewModel 启动。解决了!!

错误:

IContentViewModel viewModel = injector.Resolve<IContentViewModel>(TabPage);

正确:

IContentViewModel viewModel = injector.Resolve<IContentViewModel>(TabPage);
        if (TabPage == "OverviewPage")
        {
            injector.Resolve<ViewModels.Windows.MainWindowViewModel>().CurrentPageViewModel = injector.Resolve<OverviewPageViewModel>(TabPage);
        }
        else
        {
            //viewModel.ClearData();
            injector.Resolve<ViewModels.Windows.MainWindowViewModel>().CurrentPageViewModel = viewModel;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-13
    • 2011-08-09
    • 2011-07-04
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多