0

我目前面临一项微不足道的任务,但我想不出解决方案。

为了解释它应该如何工作的理论......

有一种认证形式。http://prntscr.com/pwat5

此表单适合TabControl->TabItemTabControl依次放置在组件上Grid。实际上,在该键输入上是通过单击身份验证并将登录表单更改为另一个表单的事件。

这种形式的认证,我需要更多,我按照以下方式进行,并将表单数据放置到特定组件中,结构如下所示:

Grid
 ListBoxItem
  MyAuthForm
   ... //Well, actually imposed on the rest of the crap form MyAuthForm

对于我的表单的相同副本,我MyAuthForm克隆了该对象,更准确地说,我将ListBoxItem其所有内容连同其所有内容一起克隆到新对象中,从而将其添加到组件网格中,即获得一个新的克隆对象。

Grid
 ListBoxItem
  MyAuthForm
   ... //Well, actually imposed on the rest of the crap form 
 ListBoxItemСlone
  MyAuthFormСlone
   ... //And so on

但问题是我的原始对象承载了各种事件,但克隆的对象无法传递原始对象中的某些事件。

如何解决这个问题?以某种方式克隆一个对象可以引用原始对象的事件吗?

总的来说,尽我所能解释,我希望最容易理解我想要的东西,非常感谢你的任何提示和想法,第二天我遇到了这个案子,到目前为止还没有想法。

ps在每个克隆对象的手册中,我不能为这种形式的身份验证创建事件可能绰绰有余,一切都必须快速,所以唯一的选择是以某种方式引用已经存在的事件,wpf 是否允许这种可能性?

4

1 回答 1

1

也许因为您正在使用 WPF,如果您将事件绑定到命令或任何其他机制,那么克隆的窗口,给定相同的数据上下文,将针对相同的方法,您的问题将得到解决。

我希望我理解正确。

过去我将 Caliburn 与 WPF 一起使用,那里有一个名为ActionMessage的东西可能对您有用。

它在数据上下文中冒泡,直到找到具有指定名称的方法,否则抛出异常。也许您可以使用它,再加上 2 个克隆共享数据上下文实例的事实,使您能够使它们都指向相同的身份验证方法。

希望我做对了。

于 2013-01-21T11:15:22.317 回答