2017-03-24 43 views
1

私はこの問題を解決するためにあらゆるところを探していましたが、私は長い間Xamarinフォームを使用していませんでしたが、簡単だと思いました。 私はビューモデルのコマンドにselecteditemchangedピッカーをバインドしようとしていますが、FreshMVVMとXamarinフォームのバージョン2.3.4.214-pre5を使用しています。ビューモデルからデータをバインドできますが、コマンドオプションはありません。ピッカー。ピッカーをmvvmコマンドにバインドするXamarin forms

ご協力いただければ幸いです。 はあなたのピッカーのSelectedIndexChangedプロパティを指定、ピッカー項目が選択されたときにコードを実行するには、あなたに

+0

私は、値を選択すると変更されたSelectedItemプロパティがあると思います。どのコマンドを探していますか? –

答えて

0

ありがとう:

<Picker x:Name="myPicker" SelectedIndexChanged="indexChanged"/> 

次に、あなたのコード内の後ろにあなたのindexChanged方法を追加:

void indexChanged(object sender, EventArgs e) 
{ 
    //Your code here 
} 

が続いてユーザーがピッカーから別の項目を選択すると、indexChangedメソッドが実行されます。

+1

それはうまくいくが、mvvmコマンドにバインドして、選択が行われたときにモデルを更新しようとしている。私はそれをコマンドにバインドする必要があります。 – theshwaguy

+0

[このウェブサイトをご覧ください](https://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-basics/data_bindings_to_mvvm/)を参照してください。また、CommandModelsセクションの下にはCommand Interfaceをサポートするビューが表示されています。 'Picker'はそれらの一つではないので、' Command'を使わなければならない場合、 'Picker'はあなたのためには機能しません。 – cvanbeek

4

私は実用的なソリューションを取得することができました:

まず第一に、私はXamarinは、バージョン2.3.4.214-pre5フォーム設置し、それがうまく働いています。 NuGetパッケージマネージャコンソールでInstall-Package Behaviors.Formsを実行することにより、Behaviors.Forms NuGetパッケージをインストールする -

1: はその後Xamarinフォーラムの助けを借りて、私は、次のされたソリューションを、与えられました。

2 - その後、XAMLページに次の名前空間を含める:

<ContentPage xmlns:behaviors="clr-namespace:Behaviors;assembly=Behaviors"> 
</ContentPage> 

3 - 次にPickerタグにPicker.Behaviors属性を追加します。

<Picker x:Name="MyPicker" 
      ItemsSource="{Binding IdentityProviders}" 
      HorizontalOptions="FillAndExpand" Title="Identity Provider" 
      Margin="10" 
      ItemDisplayBinding="{Binding Description}"> 
    <Picker.Behaviors> 
      <behaviors:EventHandlerBehavior EventName="SelectedIndexChanged"> 
       <behaviors:InvokeCommandAction Command="{Binding SelectedProviderChanged}" /> 
      </behaviors:EventHandlerBehavior> 
    </Picker.Behaviors> 
</Picker> 

あなたが戻ってデータを渡す場合パラメータとして次のコマンドを追加します。CommandParameter="{Reference MyPicker}"

これで問題が解決しました: 私が得た助けは、この投稿からでしたMVVM Light - How to use the selectedIndexChanged event in viewModel

+0

それは素晴らしいトリックです。私はそれがどんな種類の制御にも容易に移植可能でなければならないと信じています。共有ありがとう! –

関連する問題