2013-01-21 37 views
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中,也就是獲取新的克隆對象。

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

但問題是,我的原始對象攜帶各種事件,但克隆的對象不能在原來的某些事件上傳遞。

怎麼可能解決這一問題?以某種方式克隆對象可以引用原始對象的事件?

一般來說,解釋盡我所能,我最希望的訪問概述我想要的東西,非常感謝你對任何提示和想法,第二天我這種情況下,到目前爲止,沒有想法受到影響。

PS在手動爲每個克隆的對象,我不能創造這樣的形式的認證事件可能是綽綽有餘的,一切要快,所以唯一的選擇就是以某種方式是指已經存在的事件, wpf允許這種可能性?

+1

我不得不承認,我不明白你想要達到什麼樣的目標以及你的問題是什麼。如果可能, –

回答

1

也許因爲你是用WPF工作,如果你綁定事件的命令或任何其他機構用於克隆的窗口,在相同的datacontext將針對相同的方法和你的問題將得到解決。

我希望我的理解正確。

在過去我曾經與卡利WPF和有一些所謂ActionMessage有可能是你有幫助。

它通過datacontexts冒泡,直到找到具有指定名稱的方法,否則它會引發異常。也許你可以使用它,再加上2個克隆共享datacontext實例,以使它們都指向相同的驗證方法。

希望我這樣做是正確。

+0

,你能舉出更多的例子嗎? – Johnny

+0

我不確定你的代碼的上下文是什麼,所以這就是爲什麼我解釋爲儘可能通用。你基本上需要做的就是修改現有的代碼,使用ActionMessages在事件觸發時調用你想要的方法,當創建一個克隆時,你必須將它的datacontext設置爲你正在克隆的實例的datacontext(如果這不是通過克隆自動完成),它應該工作 – dutzu