2013-01-07 56 views
1

如何以編程方式將EventToCommand綁定到Windows Phone 8中的ApplicationBar按鈕或MenuItem?我目前使用MVVM light,它可以完美地適用於我可以在XAML中添加的所有元素。Binding EventToCommand in Code for localized ApplicationBar

通常,我會從Xaml定義ApplicationBar,並可以從Expression Blend中的EventToCommand綁定。但從WP8開始,微軟決定更喜歡localizable ApplicationBar which will be created programmatically,因爲它不能輕鬆地綁定到不同的語言。

什麼是需要重現相同的行爲,如果我會推按鈕執行EventToCommand?這甚至可能或鼓勵關於MVVM模式?我有什麼選擇?

回答

3

您可以在WP8中使用相同的舊WP7 AppBar。 LocalizableAppBar只是關於如何本地化AppBar的建議。

無論哪種方式,您可能沒有使用AppBar上的EventToCommand,因爲它不支持DataBinding。你需要使用一個Bindable AppBar。要麼編寫一個本地的,要麼使用其中的一個OSS解決方案,例如:AppBarUtils,BindableApplicationBar,Cimbalino或其他。

將上述ApBars之一本地化將會簡單很多,因爲您可以將文本數據綁定到ViewModel並使用任何您想要的文本。

+0

感謝您的回覆。 Cimbalino看起來很有前途,我會試試看。然後我猜我的主要問題是支持EventToCommand的本地化AppBar,或者一般的綁定。但是,我可以輕鬆地從Blend中使用這些可綁定的AppBars,還是需要以編程方式分配EventToCommand(這將我帶回到我的第一個問題:) –

+0

您可以使用Blend中的可綁定AppBars,並且它們應該可以與EventToCommand一起正常工作。他們在混合設計表面上可能有點笨拙,但他們可以正常工作。大多數Bindable AppBars甚至可能公開一個可以直接使用的Command屬性,而不是使用EventToCommand。 – JustinAngel

+0

你的建議太棒了! Cimbalino立即開箱即用。我可以添加語言支持,並可以使用我定義的命令,謝謝! –