如何将MenuFlyout中的方法与Caliburn Micro绑定?

时间:2014-11-21 22:03:07

标签: c# wpf windows-phone-8 contextmenu caliburn.micro

我想学习Caliburn Micro在我的Windows Phone应用程序中使用它。 我不知道如何在我的MenuFlyoutItem中使用Caliburn Micro。 我试过这样的方式:

<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);
}

抱歉我的英语不好。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

使用下面的代码

caliburn:Action.TargetWithoutContext="{Binding Path=DataContext,ElementName=stackpanelName}"