2014-11-21 51 views
1

我想學習Caliburn Micro在我的Windows Phone應用程序中使用它。 我不知道如何在我的MenuFlyoutItem中使用Caliburn Micro。 我已經試過這樣:如何使用Caliburn Micro在MenuFlyout中綁定方法?

<StackPanel micro:Message.Attach="[Event Holding] = [Action OpenFlyout($source)]"> 
    <FlyoutBase.AttachedFlyout> 
     <MenuFlyout> 
      <MenuFlyoutItem Text="Edit" micro:Message.Attach="[Event Click] = [Action EditEle($source)]"/> 
      <MenuFlyoutItem Text="Remove" micro:Message.Attach="[Event Click] = [Action DelEle($source)]" /> 
     </MenuFlyout> 
    </FlyoutBase.AttachedFlyout> 
    ... 
</StackPanel> 

「OpenFlyout」 的作品。所以當我點擊並按住一個元素時,我可以查看MenuFlyout。 但是,如果我點擊「編輯」,應用程序崩潰。

我試圖在函數中插入一個斷點,但應用程序沒有停止。 所以,我認爲這是一個有約束力的問題。

方法DelEle和EditEle非常相似(除了他們的任務)。 在這裏你可以找到方法:DelEle。

public void DelEle(FrameworkElement senderElement) 
{ 
    CreditCard obj = senderElement.DataContext as CreditCard; 
    DeleteFromCardKeyList(obj.NameID.ToUpper()); 
    DeleteTxtCardFile(obj.NameID.ToUpper()); 
    CreditCards.Remove(obj); 
} 

對不起,我可憐的英語。謝謝你的幫助。

+0

$ EventArgs的不會是一個更好的解決辦法?你能夠調試DelEle()方法來查看它是否在此之前崩潰?或在那個方法?您有可能遇到Visual Tree問題。 試試這個以及 – mvermef 2014-11-22 00:32:35

+0

我試過「」但沒有任何改變。不,我不能調試DelEle bacause第一次崩潰。 我認爲是一個XAML問題,如果我用另一種方法綁定元素,它會崩潰。 – Emanuele 2014-11-22 08:49:03

+2

大家好。我解決我的問題按照這個教程:http://wp.qmatteoq.com/first-steps-in-caliburn-micro-with-windows-phone-8-how-to-manage-different-datacontext/ 感謝所有。首先:我爲我的頁面設置一個名稱(x:Name =「MainP」)。 之後,我改變了我的XAML這種方式。微軟:Message.Attach =「[事件點擊] = [動作EditEle($ dataContext)]」//>' – Emanuele 2014-11-22 11:05:37

回答

0

使用下面的代碼

caliburn:Action.TargetWithoutContext="{Binding Path=DataContext,ElementName=stackpanelName}" 
相關問題