Pickerコントロールでキーと文字のペアを使用する
Pickerコントロールで文字を選択したときに、プログラムで取得する値を文字ではなくキー値で取得した場合があります。
以下のようにすれば選択した文字に対応するキー値を取得できます。
Xamlファイル
<Picker ・・・ ItemsSource="{Binding ListItemSource}" SelectedItem="{Binding SelectListItem}" ItemDisplayBinding="{Binding Name}" /> ※ItemDisplayBindingにて、表示する文字が格納されている変数名を指定している
ViewModelファイル
public class XxxViewModel { private ObservableCollectionlistItemSource = new ObservableCollection (); public ListDto SelectListItem { get; set; } public ObservableCollection ListItemSource { get => this.listItemSource; private set => this.SetProperty(ref this.listItemSource, value); } ・・・ // データを登録する場合 this.listItemSource.Add(new ListDto(1, "test a")); this.listItemSource.Add(new ListDto(2, "test b")); // データを参照する場合 int id = this.SelectDomainItem2.Id; }
新規クラス作成
public class ListDto { public ListDto(int id, string name) { Id = id; Name = name; } public int Id { get; set; } public string Name { get; set; } }