Xamarin表单选择器SelectedItem绑定

时间:2017-01-19 18:22:27

标签: xamarin.forms

Xamarin Forms doc https://developer.xamarin.com/api/property/Xamarin.Forms.Picker.SelectedItem/表示Picker有一个公共属性SelectedItem。但是,当我尝试绑定它时,我收到一个错误。如果必须手动处理SelectedIndex属性,则选择器不是很有用。

2 个答案:

答案 0 :(得分:3)

您可以相对轻松地添加此功能,即使使用旧版本的Forms 2.3.4支持开箱即用。只需创建一个自定义behaviour即可绑定选择器项。您可以实现自己的版本或使用现有的库,例如Xamarin大学基础结构库,sourceNuget

详细documentation显示了如何使用它:

<Picker ...>
   <Picker.Behaviors>
      <inf:PickerBindBehavior Items="{Binding Colors}" 
                          SelectedItem="{Binding FavoriteColor}" />
   </Picker.Behaviors>
</Picker>

行为的方法是公开可绑定属性(项)并使用可观察集合。每当更改时,行为都会更新选择器的项目。

答案 1 :(得分:1)

无需手动处理SelectedIndex。您可以使用Pickers SelectedItem属性。只需确保您的类型相同。例如,如果您的ItemsSource绑定到属性:

BookTitles List<string> { get; set; }

您的SelectedItem必须是:

SelectedBookTitle string { get; set; }

确保在首次显示页面时设置SelectedBookTitle值以显示标题。 不要忘记在SelectedItem Binding上将Mode设置为TwoWay。 例如:

<Picker ItemsSource="{Binding BookTitles}" SelectedItem="{Binding 
SelectedBookTitle, Mode=TwoWay}" />

这将确保首次显示页面时显示标题, 并保持SelectedBookTitle的值在Page和codebehind / viewmodel上保持相等。

此示例中无需使用行为。