【问题标题】:Binding EventToCommand in Code for localized ApplicationBar在本地化 ApplicationBar 的代码中绑定 EventToCommand
【发布时间】:2012-12-20 23:42:33
【问题描述】:

如何以编程方式将 EventToCommand 绑定到 Windows Phone 8 中的 ApplicationBar Button 或 MenuItem?我目前正在使用 MVVM light,它适用于我可以在 XAML 中添加的所有元素。

通常,我会从 Xaml 定义 ApplicationBar,并可以从那里绑定到 Expression Blend 中的 EventToCommand。但从 WP8 开始,微软决定更喜欢 localizable ApplicationBar which will be created programmatically,因为它不能轻易地绑定到不同的语言。

重现与按下按钮执行 EventToCommand 相同的行为需要什么?关于 MVVM 模式,这是否可能或鼓励?我的替代方案是什么?

【问题讨论】:

    标签: mvvm mvvm-light windows-phone windows-phone-8


    【解决方案1】:

    您可以在 WP8 中使用相同的旧 WP7 AppBar。 LocalizableAppBar 只是关于如何本地化 AppBar 的建议。

    无论哪种方式,您都可能没有在 AppBar 上使用 EventToCommand,因为它不支持 DataBinding。为此,您需要使用 Bindable AppBar。要么自己编写一个,要么为此使用众多 OSS 解决方案中的一种,例如:AppBarUtilsBindableApplicationBarCimbalino 或其他。

    本地化上述 ApBar 之一会简单得多,因为您可以将文本数据绑定到 ViewModel 并使用您喜欢的任何文本。

    【讨论】:

    • 感谢您的回复。 Cimbalino 看起来很有希望,我会尝试一下。然后我想我的主要问题是支持 EventToCommand 或一般绑定的可本地化 AppBar。但是我可以从 Blend 中轻松使用这些可绑定的 AppBar,还是需要以编程方式分配 EventToCommand(这让我回到了我的第一个问题 :)
    • 您可以使用 Blend 中的可绑定 AppBar,它们应该可以与 EventToCommand 一起正常工作。它们在混合设计表面上可能有点不稳定,但它们会正常工作。大多数 Bindable AppBars 甚至可能会公开一个 Command 属性,您可以直接使用它而不是使用 EventToCommand。
    • 你的建议太棒了! Cimbalino 立即开箱即用。我可以添加语言支持并可以使用我定义的命令,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多