如何在同一页面上处理多个用户控件-UWP

时间:2018-10-21 04:16:15

标签: c# uwp user-controls win-universal-app windows-10-universal

我遇到的情况是页面中需要两个相同的用户控件。用户控件需要与页面进行通信,反之亦然,因此我使用事件来进行通信。但是,当我在页面上向UC触发事件时,事件会击中两个对象,导致两次执行函数。该UC也绑定到ViewModel,但是当我退出页面时,这些UC没有被处理。因此,当用户返回同一页面并执行某些操作时,它将击中内存中的所有剩余对象。 (因为事件未解除绑定)

我认为我没有正确使用UC。请让我知道如何正确地从页面到UC和从UC到页面进行通信,以及如何在同一页面上多次使用同一UC。

这是针对Windows 10(10240)的UWP应用。

非常感谢您抽出宝贵的时间。干杯!

我的用户控件构造函数将事件绑定到页面上。

 public CommentsUserControl()
        {
            this.InitializeComponent();

            AgendaPage.PaperCommentsInitializeEvt += (PaperCommentsInitializeEvt);
            AgendaPage.MeetingCommentsInitializeEvt += (MeetingCommentsInitializeEvt);
            AgendaPage.ClearDisplayCommentsEvt += (ClearDisplayCommentsEvt);
}

当您导航到另一个页面并返回时,这些事件发生了4次,因为在开始时已初始化2个用户控件。

1 个答案:

答案 0 :(得分:0)

希望这对某人有帮助。 我的解决方案是实现Usercontrol的 Unload 方法并为事件添加取消绑定的代码。

strokeCap