Xamarin日期选择器选择的索引未选择正确的索引

iih3973s  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(208)

使用下面的代码选择当前年份,设置包含从1900年开始的年份列表的日期选取器的选定索引
`

yearpicker.ItemsSource = yearlist;

            var todayyear = DateTime.Now.ToString("yyyy");
            var findyear = yearlist.FindIndex(x => x.StartsWith(todayyear));

            yearpicker.SelectedIndex = findyear;

`
如果你设置了一个断点,所选的索引返回“122”,这是正确的,尽管拾取器默认为索引0。这只发生在android上
不确定导致此问题的原因

mqkwyuun

mqkwyuun1#

我已经创建了一个要测试示例:
在xaml:

<StackLayout Orientation="Vertical">
<Picker x:Name="picker" />  
 <Button Text="click" Clicked="Button_Clicked_1" />
</StackLayout>

在页面.cs:

public partial class MainPage : ContentPage
    {
        List<string> list;
        public MainPage()
        {    
            InitializeComponent();
            list  = new List<string>();
            for(int i = 1900; i< 2023; i++)
            {
                list.Add(i.ToString());
            }
            picker.ItemsSource = list;
        }
        private void Button_Clicked_1(object sender, EventArgs e)
        {
            var todayyear = DateTime.Now.ToString("yyyy");
            var findyear = list.FindIndex(x=>x.StartsWith(todayyear));
             picker.SelectedIndex = findyear;
        }
    }

当我单击按钮时,选择器的当前项将显示2022。选择器的范围是从19002022。一切都是正确的。索引返回122也是正确的。因为列表中有123项,索引是从0到122。

相关问题