winforms 为什么我不能在方法中使用这些选定的索引?- HRK to EURO货币转换器

kjthegm6  于 2022-11-16  发布在  其他
关注(0)|答案(3)|浏览(127)

对C#来说相当陌生。
我想从下拉式方块读取使用者输入,并使用选取的货币进行转换。输出不在主控台中,而是在Windows表单中。
这是我在组合框中输入的读取代码:

public void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    double first = comboBox1.SelectedIndex;
}

public void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    double second = comboBox2.SelectedIndex;
}

这是我的代码,它使用选定的索引并转换它们:

internal class Currencies
{
    public double[] Convert(double[] currencies, int amount)
    {
        double[] convertedAmount = new double[currencies.Length];

        if (Converter.comboBox1.first == HRK && Converter.comboBox2.second == EURO)
        {
            int exchangeRate1 = 1;
            double exchangeRate2 = 7.4;

            for (int i = 0; i < currencies.Length; i++)
            {
                convertedAmount[i] = amount * exchangeRate1 / exchangeRate2;
            }
        }
        else if (Converter.comboBox1.first == EURO && Converter.comboBox2.seocnd == HRK)
        {
            int exchangeRate1 = 1;
            double exchangeRate2 = 7.4;

            for (int i = 0; i < currencies.Length; i++)
            {
                convertedAmount[i] = amount * exchangeRate1 / exchangeRate2;
            }
        }
        else
        {
            throw new NotSupportedException();
        }

        return convertedAmount;
    }
}

为什么这个方法不允许我使用变量“first”和“second”来转换货币呢?

ioekq8ef

ioekq8ef1#

删除selectedIndexChanged过程,因为您在该过程中声明的局部变量在该过程触发后将被垃圾收集。
只需将Convert()方法中的 firstsecond 替换为 comboBox1.SelectedValuecomboBox2.SelectedValue 即可

ajsxfq5m

ajsxfq5m2#

对不起,当我遇到问题时

public string SelectedItem { get; set; }

必须添加utils这样的新类,并且必须添加到{ get ; set }
每个你都有概念这样更好

gg0vcinb

gg0vcinb3#

您可以使用这种方法,这是我在应用程序中经常使用的方法
1.建立三个文件夹(ViewModel、View和model)
1.安装fody.propertyChange from Nugget
1.为页面创建viewModel
1.在viewwModel中定义变量string SelectedIted {get; set;}
1.在页面的xaml代码隐藏中,输入DataContext = new NameOfYourViewModel
像这样的东西

<ComboBox
            Grid.Row="2"
            Grid.Column="1"
            Margin="10,0,10,0"
            HorizontalAlignment="Stretch"
            ui:ControlHelper.PlaceholderText="Select Lenguague"
            DisplayMemberPath="Value.Name"
            ItemsSource="{Binding LanguagesDictionary}"
            SelectedValue="{Binding SelectedItem}"
            SelectedValuePath="Value.Code" />

虚拟机中

public string SelectedItem { get; set; }

在您的XAML代码后面

DataContext = new AudioPageViewModel();

相关问题