Xamarin 表单选择器 SelectedItem 绑定

Ton*_*ugg 6 xamarin.forms

该Xamarin表格文档Xamarin.Forms.Picker.SelectedItem说,有一个公共财产SelectedItemPicker。但是,当我尝试绑定到它时出现错误。如果您必须手动处理SelectedIndex属性,选择器不是很有用。

托尼

小智 8

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

BookTitles List<string> { get; set; }
Run Code Online (Sandbox Code Playgroud)

SelectedItem必须是这样的:

SelectedBookTitle string { get; set; }
Run Code Online (Sandbox Code Playgroud)

确保设置该SelectedBookTitle值以在首次显示页面时显示标题。不要忘记设置ModeTwoWaySelectedItem Binding。例如:

<Picker ItemsSource="{Binding BookTitles}" SelectedItem="{Binding 
SelectedBookTitle, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)

这将确保在第一次显示页面时显示标题,并SelectedBookTitle在页面和代码隐藏/视图模型上保持相等的值。

在这个例子中不需要使用行为。


Kru*_*lur 4

您可以相对轻松地添加此功能,即使使用开箱即用的 Forms pre 2.3.4 旧版本也是如此。只需创建一个自定义行为来绑定选择器项目。您可以实现自己的版本或使用现有的库,例如 Xamarin 大学基础设施库,它可以作为源代码Nuget形式提供

详细的文档展示了如何使用它:

<Picker ...>
   <Picker.Behaviors>
      <inf:PickerBindBehavior Items="{Binding Colors}" 
                          SelectedItem="{Binding FavoriteColor}" />
   </Picker.Behaviors>
</Picker>
Run Code Online (Sandbox Code Playgroud)

该行为的方法是公开可绑定属性(项目)并使用可观察集合。每当这种情况发生变化时,行为就会更新选择器的项目。