Xamarin Forms doc https://developer.xamarin.com/api/property/Xamarin.Forms.Picker.SelectedItem/表示Picker有一个公共属性SelectedItem。但是,当我尝试绑定它时,我收到一个错误。如果必须手动处理SelectedIndex属性,则选择器不是很有用。
贝
答案 0 :(得分:3)
您可以相对轻松地添加此功能,即使使用旧版本的Forms 2.3.4支持开箱即用。只需创建一个自定义behaviour即可绑定选择器项。您可以实现自己的版本或使用现有的库,例如Xamarin大学基础结构库,source和Nuget
详细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上保持相等。
此示例中无需使用行为。