2017-09-13 2 views
0

xamarin.formsのpickerフィールドで簡単なmvvmバインディングを作成しています。表示されてピッカーのリスト項目でXamarin.Forms - 選択したアイテムバインディングが応答しない

<Picker 
    ItemsSource="{Binding Operations}" 
    ItemDisplayBinding="{Binding Number}" 
    SelectedItem = "{Binding SelectedOperation}"/> 
<Entry x:Name="HelpEntry" 
     Text="{Binding SelectedOperation.Name}" /> 

public class Operation 
{ 
    public int Number { get; set; } 
    public string Name { get; set; } 
} 

アンのViewModel:

private List<Operation> _operations; 
public List<Operation> Operations 
{ 
    get { return _operations; } 
    set 
    { 
     _operations = value; 
     OnPropertyChanged(); 
    } 
} 

と見る私は

xamarin guide setting a picker's bindingsは、だから私はモデルを作ったこのガイドを、以下のいアイテム番号を選択すると、エントリ内のバインディングは表示されません。

私は間違っていますか?ところで


私はHelpEntry.Textを使用することによって、私のコードビハインドセクションに変数として選択Operation's Nameを取得する必要がありますので..私はこれをやっています。それは賢明な方法ではないとあなたはそれを行うために良いアイデアを持っていますか?

ご協力いただければ幸いです。

+1

まず、 'List'の代わりに' ObservableCollection'を使います。 'SelectedOperation'のセッターが' OnPropertyChange'メソッドを呼び出しますか? – Alex

+0

..私はビューモデルの内部で変数を作成していませんでした。すべてが今完璧に動作しています。それは答えが受け入れられるだろう。ありがとうアレックス! –

答えて

1

ViewModelには、SelectedOperationプロパティも含まれている必要があります。これは、セッターのOnPropertyChangedメソッドも呼び出す必要があります。

また、Listの代わりにObservableCollectionを使用することをお勧めします。

関連する問題