gpt4 book ai didi

c# - 如何在 WPF/MVVM 中对绑定(bind)到相同实例的两个 ListView 进行不同选择

转载 作者:行者123 更新时间:2023-12-03 10:29:58 24 4
gpt4 key购买 nike

我正在使用 WPF 和 MVVM。
在我的应用程序中,最好从主屏幕中选择一个项目,然后按一个按钮查看详细信息。应该打开一个新窗口,并且可以在 ListView 中进行(多个)选择,其中 IsSelected 绑定(bind)到 ObservebleCollection 中的项目。

当用户再次按下该按钮(在主屏幕上进行相同的选择)时,会打开另一个具有相同细节的窗口。但是,我假设如果做出不同的选择,第一个窗口会同步并显示相同的选择。

我希望有两个窗口可能有不同的选择。这可能吗?应该怎么做才能让它发挥作用?

更新:
示例:假设我有一辆有 4 个轮子的汽车(收藏)。两个窗口中的 ListView 都显示了 4 个轮子(一项是一个轮子)。当我在 ListView 中选择轮 1 和 2 时,我认为在另一个窗口中也会选择轮 1 和 2。但我想在窗口 2 中选择 3 和 4,在窗口 1 中选择轮 1 和 2)。而且我不想添加另一个 4 个轮子的集合,否则我会有一辆有 8 个轮子的汽车……或者 2 辆有 4 个轮子的汽车,但如果我更换轮子 3 和 4,它只会改变第二辆车。

更新 2:
顺便说一句,在我的应用程序中:

  • 我有 0 到 n 个带有 ListView 的窗口。
  • 我创建了一个包含 View 模型的窗口。
  • 每个 View 模型都引用“真实”模型。

  • 所选项目的绑定(bind)变量在真实模型中,我想我需要将它移动到 View 模型,但我不知道如何。因为(示例中的轮子的)属性位于“真实”模型中,并且这些属性也绑定(bind)在同一个 ListView (项目)中。
    我知道了

    最佳答案

    如果只有两个列表,您可以将 IsSelected 绑定(bind)到两个单独的属性(即 IsSelectedInList1、IsSelectedInList2)。

    但实际上, View 模型应该是 UI 的代码内无 View 表示。因此,如果您的 UI 中有两个(或 N 个)列表副本,它们应该具有不同的状态,那么在内存中创建该 View 模型的两个(或 N 个)副本来表示它是有意义的。

    And I don't want to add another collection of 4 wheels otherwise I would have a car with 8 wheels ... or 2 cars with 4 wheels but if I change wheel 3 and 4, it would change only the second car.



    我认为在考虑您的模型时更是如此。在您的模型中,您需要特定汽车的一个实例,并且该汽车应该有一个包含四个轮子的集合。但是,如果您想要两个不同的 View (具有不同的状态),则可以从该模型创建两个 View 模型。

    关于c# - 如何在 WPF/MVVM 中对绑定(bind)到相同实例的两个 ListView 进行不同选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405392/

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