gpt4 book ai didi

wpf - 任何人都可以提供 Conductor.Collection.AllActive 用法的任何简单工作示例吗?

转载 作者:行者123 更新时间:2023-12-04 13:40:00 24 4
gpt4 key购买 nike

这有点奇怪,但我真的无法在任何地方找到一个可行的例子。

顺便说一句,如果这很重要,我将使用 ViewModel-first 方法(在 WPF 中)。

先感谢您。

最佳答案

如果你看看讨论 here你会看到 AllActive 的目的是将几个 Views/ViewModels 组合成一个包含 ViewModel。从您之前的评论来看,这似乎是您所期望的,但我想我至少会在这里引用它。

然后您提到在 View 的不同区域激活 3 个不同的 ViewModel。我过去处理这个问题的方式是拥有单独的属性来绑定(bind)/引用 View 中的 ViewModel,然后将它们全部添加到 Items 以获得 Conductor 行为。

public sealed class MyViewModel : Conductor<Screen>.Collection.AllActive
{
public MyViewModel(IMagicViewModelFactory factory)
{
FirstSubViewModel = factory.MagicallyGiveMeTheViewModelIWant();
SecondSubViewModel = factory.MagicallyGiveMeTheViewModelIWant();
ThirdSubViewModel = factory.MagicallyGiveMeTheViewModelIWant();

Items.Add(FirstSubViewModel);
Items.Add(SecondSubViewModel);
Items.Add(ThirdSubViewModel);
}

public Screen FirstSubViewModel { get; private set; }
public Screen SecondSubViewModel { get; private set; }
public Screen ThirdSubViewModel { get; private set; }
}

在 MyView 中,您将拥有类似的东西。当然你可以把这些 ContentControls在 View 中的任何位置。
<StackPanel>
<ContentControl x:Name="FirstSubViewModel" />
<ContentControl x:Name="SecondSubViewModel" />
<ContentControl x:Name="ThirdSubViewModel" />
</StackPanel>
AllActive 的另一个常见用途是当你有一个项目列表时。但是这些项目足够复杂,足以保证拥有自己的需要激活的 View/ViewModel。在这种情况下,您不必为 View 设置单独的属性,因为您只需设置 x:Name列表控件的 Items .

关于wpf - 任何人都可以提供 Conductor<T>.Collection.AllActive 用法的任何简单工作示例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607168/

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