gpt4 book ai didi

c# - 从ChildVM中获取必要的ViewModel并将其设置为ParentVM中的属性

转载 作者:行者123 更新时间:2023-12-03 10:31:49 25 4
gpt4 key购买 nike

我有看起来像这样的MainViewModel

public class MainViewModel : ReactiveObject 
{
public MenuViewModel MenuVM { get;set; }

[Reactive] IOverlayViewModel OverlayVM { get;set; }
}

所以我的问题是要在MainViewModel和MenuViewModel之间进行通信。 MenuViewModel负责MenuControl,并应将必要的ViewModel设置为OverlayVM,具体取决于用户单击哪个按钮以显示带有所选菜单项的Overlay。

那么我应该如何使它工作呢?在MenuViewModel中创建事件,在MainViewModel中订阅该事件,并在每次用户单击带有viewmodel作为参数的菜单项时调用它?帮助我找到解决此问题的最佳方法!

最佳答案

您可以在ReactiveCommand中定义一个MenuViewModel并在MainViewModel中进行订阅。像这样:

public class MenuViewModel : ReactiveObject
{
public ReactiveCommand<Unit, IOverlayViewModel> NavigateCommand { get; }
}

public class MainViewModel : ReactiveObject
{
public MainViewModel()
{
MenuVM.NavigateCommand.Subscribe(viewModel => OverlayVM = viewModel);
}

public MenuViewModel MenuVM { get; set; } = new MenuViewModel();

[Reactive] IOverlayViewModel OverlayVM { get; set; }
}

关于c# - 从ChildVM中获取必要的ViewModel并将其设置为ParentVM中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57059499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com