You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin Forms中实现简易数字选择器并存储选中值到变量

实现1-30数字选择器及跨页面变量存储方案

一、创建1-30数字下拉选择器

WinForms 版本

  1. 拖一个ComboBox控件到窗体,命名为numComboBox
  2. 在窗体Load事件中填充数字:
private void Form1_Load(object sender, EventArgs e)
{
    // 循环填充1到30的数字
    for (int i = 1; i <= 30; i++)
    {
        numComboBox.Items.Add(i);
    }
    // 默认选中第一个选项
    if (numComboBox.Items.Count > 0)
    {
        numComboBox.SelectedIndex = 0;
    }
}

WPF 版本

  1. 在XAML中添加ComboBox:
<ComboBox x:Name="numComboBox" SelectionChanged="NumComboBox_SelectionChanged"/>
  1. 在后台代码填充数字:
public MainWindow()
{
    InitializeComponent();
    // 循环填充1到30的数字
    for (int i = 1; i <= 30; i++)
    {
        numComboBox.Items.Add(i);
    }
    numComboBox.SelectedIndex = 0;
}

二、创建跨页面共享的全局变量

新建一个静态类文件(比如GlobalData.cs),用静态变量存储选中值:

public static class GlobalData
{
    // 全局共享的选中数字,默认值设为1
    public static int SelectedNumber { get; set; } = 1;
}

三、同步下拉选择值到全局变量

WinForms 绑定选择变更事件

private void numComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    // 避免选中项为空导致报错
    if (numComboBox.SelectedItem != null)
    {
        GlobalData.SelectedNumber = Convert.ToInt32(numComboBox.SelectedItem);
    }
}

WPF 绑定选择变更事件

private void NumComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (numComboBox.SelectedItem != null)
    {
        GlobalData.SelectedNumber = (int)numComboBox.SelectedItem;
    }
}

四、在其他页面读取全局变量

在任意页面直接访问GlobalData.SelectedNumber即可:

// 示例:在第二个窗体的Load事件中显示选中值
private void Form2_Load(object sender, EventArgs e)
{
    MessageBox.Show($"选中的数字:{GlobalData.SelectedNumber}");
    // 也可以赋值给控件,比如Label
    labelDisplay.Text = $"当前选择:{GlobalData.SelectedNumber}";
}

常见Bug排查

  • 下拉框无数据:检查循环范围是否为1<=i<=30,确认窗体Load事件已正确绑定。
  • 变量值不更新:确认下拉框的选择变更事件已绑定,且添加了选中项非空的判断。
  • 跨页面读不到值:确保GlobalData类是public static,变量是public static属性。

内容的提问来源于stack exchange,提问作者Monsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:15:38