2011-01-27 5 views
0

ボタンの下のサンプルコードは、2ページ目を開くようにします。mvvm-lightを使用します。CustomEventトリガとApplicationBarIconButton

  <Button x:Name="btnSelect" Content="Select" HorizontalAlignment="Right" Margin="0,8,20,6" 
       Grid.Row="2" Width="200"> 
      <Custom:Interaction.Triggers> 
       <Custom:EventTrigger EventName="Click"> 
        <GalaSoft_MvvmLight_Command:EventToCommand x:Name="btnSelectClicked" 
                   Command="{Binding SelectEventPageCommand, Mode=OneWay}"/> 
       </Custom:EventTrigger> 
      </Custom:Interaction.Triggers> 
     </Button> 

    public partial class MainPage : PhoneApplicationPage 
{ 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 


    private void ContentGrid_Loaded(object sender, System.Windows.RoutedEventArgs e) 
    { 
     Messenger.Default.Register<GoToPageMessage>(this, (action) => ReceiveMessage(action)); 
    } 

    private object ReceiveMessage(GoToPageMessage action) 
    { 
     StringBuilder sb = new StringBuilder("/Views/"); 
     sb.Append(action.PageName); 
     sb.Append(".xaml"); 
     NavigationService.Navigate(
      new System.Uri(sb.ToString(), 
       System.UriKind.Relative)); 
     return null; 
    } 
} 

http://galasoft.ch/mvvm/getstarted/

誰もが、私はApplicationBarIconButtonを使用して同じ操作を行うことができる方法を提案することはできますか?エラーが発生しましたプロパティ 'トリガ'は、タイプApplicationBarIconButtonの要素にアタッチできません。

CodeBehindを使うだけでいいですか?

<phone:PhoneApplicationPage.ApplicationBar> 
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="False"> 
     <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"> 

     </shell:ApplicationBarIconButton> 

    </shell:ApplicationBar> 
</phone:PhoneApplicationPage.ApplicationBar> 

答えて

2

Yeap ApplicationBarは、Silverlightの他のコントロールと少し異なります。 http://blog.humann.info/post/2010/08/27/How-to-have-binding-on-the-ApplicationBar.aspx

またはこの回答に記載されているようにいくつかの拡張機能を提供していますSilverlightのツールキット:私はこの1つを使用してのICommandを使用することができた How to add an application bar to a user control in wp7を私はそれを使ったことがありません。

+0

ありがとうMatthieu、最初のリンク(http://blog.humann.info/post/2010/08/27/How-to-have-binding-on-the-ApplicationBar.aspx)が私に必要なものを与えます。 – Declan

0

ApplicationBarは、オペレーティングシステムで提供されている、つまりフレームワークの一部ではなく、既に発見したようにTriggersをサポートしていないサービスです。上記で説明したように、問題。

また、Silverlight Windows Phone ToolkitApplicationBarButtonCommandApplicationBarButtonNavigationの動作を使用することもできます。必要に応じてApplicationBarMenuCommandを作成するのは簡単な作業です。あなたのケースでは、ApplicationBarボタンを使用してページに移動すると、ApplicationBarButtonNavigationの動作がトリックを行います。

関連する問題