WPF中如何实现将一个窗口的对象关联到另一个窗口?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中如何实现将一个窗口的对象关联到另一个窗口?相关的知识,希望对你有一定的参考价值。

比如我在主界面上有个对象要到修改窗口修改,修改完成之后点击确认入库,然后主窗体的这个对象也要跟随着刷新..

思路是这样的,两个窗体w1 和w2;w1调用w2并穿件一个参数,w2处理这个参数并且更改w1的控件内容。主要是w2的实现方法。你在w2的后台cs文件,写一个属性,然后在注册个属性更改的事件。w1窗口在调用w2时候,要写一个w2的属性更改函数的处理方法。在此方法里更新界面ui。代码已经实现,留下邮箱,给你发过去demo,里面有详细的备注。应该能看懂。追问

386574648@qq.com 先谢谢咯!!

追答

已经发了。请查收。

参考技术A 思路是这样的,两个窗体w1 和w2;w1调用w2并穿件一个参数,w2处理这个参数并且更改w1的控件内容。主要是w2的实现方法。你在w2的后台cs文件,写一个属性,然后在注册个属性更改的事件。w1窗口在调用w2时候,要写一个w2的属性更改函数的处理方法。在此方法里更新界面ui。代码已经实现,留下邮箱,给你发过去demo,里面有详细的备注。应该能看懂。

WPF 将对象从窗口的用户控件传递到另一个窗口的用户控件

【中文标题】WPF 将对象从窗口的用户控件传递到另一个窗口的用户控件【英文标题】:WPF Pass object from window's Usercontrol to another window's Usercontrol 【发布时间】:2021-11-12 17:07:52 【问题描述】:

我有 2 个窗口和 2 个用户控件第一个窗口使用第一个用户控件在列表视图中显示有关对象的简要信息,现在当用户单击列表中的对象(行)时,第二个窗口应该打开第二个用户控件显示该对象的完整信息。

所以问题是我如何将该对象从 UC1 传递到 UC2。

【问题讨论】:

您好,或许这对您有帮助:***.com/a/69223447/4095782 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

您的问题的答案是使用 MVVM。例如:

列表窗口:

<Window>
    <ItemsControl ItemSource = Binding DataItems>
        <ItemsControl.ItemTemplate>
            <userControls:YourLessDetailedUserControl/>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Window>

详细信息窗口:

<Window>
         <userControls:YourMoreDetailedUserControl DataContext = Binding DataItem/>
</Window>

视图模型:

class MainWindowViewModel

     public List<DataItemViewModel> DataItems get;


class DataItemViewModel

     public ICommand OpenInDetailedWindow get;

     //more properties here to describe your data item


class DetailedWindowViewModel

    DataItemViewModel DataItem get;

DataItemViewModel 中的ICommand 应定义为打开详细信息窗口,其中DetailedWindowViewModel.DataItem 设置为DataItemViewModel

如果您是 MVVM 新手,这一切看起来都非常陌生。不过没关系!一开始每个人都很难。

【讨论】:

以上是关于WPF中如何实现将一个窗口的对象关联到另一个窗口?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 中从一个窗口移动到另一个窗口?

WPF中怎么样实现选择DataGrid的某行后到另一窗口进行编辑

WPF主窗口按下按钮,关闭当前窗口,切换到另一窗口

初学:我现在用VS2010编写WPF应用程序,一个窗口变化到另一个窗口应该怎么跳转?谢谢

如何将选定的行从一个 wpf 数据网格复制到另一个 wpf 数据网格? [关闭]

如何在两个窗口之间维护 Wpf 应用程序中的会话? [关闭]