尝试使用Visual Studio 2017在Xamarin Forms版本2.3.4.270中使用新的可绑定选择器。
我可以在视图模型的列表中加载视图,因此当您单击选择器时,它会显示项目列表。我想在屏幕加载时在选择器中设置一个默认项目,我尝试过的任何工作都没有。
查看:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:BindablePickerTest"
x:Class="BindablePickerTest.MainPage">
<StackLayout>
<Label Text="Welcome to Xamarin Forms!"
VerticalOptions="Center"
HorizontalOptions="Center" />
<Picker Title="Test Picker" ItemsSource="{Binding Names}" SelectedItem="{Binding Name, Mode=TwoWay}" />
</StackLayout>
</ContentPage>
查看代码背后:(为简单起见,视图模型位于代码背后)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace BindablePickerTest
{
public partial class MainPage : ContentPage
{
MainPageViewModel vm;
public MainPage()
{
InitializeComponent();
this.BindingContext = vm = new MainPageViewModel();
}
}
public class MainPageViewModel : INotifyPropertyChanged
{
List<string> names = new List<string>
{
"Doug",
"Fred",
"Steve",
"Tom",
"Victor"
};
public List<string> Names => names;
public string Name = "Steve";
public event PropertyChangedEventHandler PropertyChanged;
}
}
当这个运行时,选择器仍然是空的 - &#34;史蒂夫&#34;未被选中。单击选择器时,列表显示正确,我可以选择任何名称,但不会设置默认选择。
感谢任何帮助!
答案 0 :(得分:1)
Name
现在是一个字段。要使Binding
起作用,需要将其转换为属性。
public string Name => "Steve";