我遇到的情况是页面中需要两个相同的用户控件。用户控件需要与页面进行通信,反之亦然,因此我使用事件来进行通信。但是,当我在页面上向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个用户控件。
答案 0 :(得分:0)
希望这对某人有帮助。 我的解决方案是实现Usercontrol的 Unload 方法并为事件添加取消绑定的代码。
strokeCap