0

在我的代码中,当我单击提交按钮时,我试图从选项窗口中的文本框中获取一个值。我知道我需要将字符串转换为我已经完成的双精度,但我的问题是 distanceOption 只是设置为 0.0 而不是用户放入文本框中的值。我认为我的问题可能与文本框的行数有关。我的 linecount 变量一直显示为 -1 并且不确定这是否是值。

        void Options_Clicked(object sender, RoutedEventArgs e)
    {
        OptionsWindow optionsWindow = new OptionsWindow();
        optionsWindow.Show();
        optionsWindow.DistanceButton.Click += new RoutedEventHandler(Distance_Clicked);
    }
    void Distance_Clicked(object sender, RoutedEventArgs e)
    {
        OptionsWindow optionsWindow = new OptionsWindow();
                  int lineCount = optionsWindow.DistanceBox.LineCount;
                 this.distanceOption = Convert.ToDouble(optionsWindow.DistanceBox.GetLineText(lineCount));

    }

如果有更好的方法从文本框中获取值,我也会对此持开放态度。谢谢!

4

2 回答 2

0

创建一个合适的 ViewModel 并使用 DataBinding:

XAML:

<TextBox Text="{Binding MyDouble}"/>

视图模型:

public double MyDouble {get;set;} //Probably NotifyPropertyChanged
于 2013-10-04T17:33:37.213 回答
0

这是一个例子

public partial class MainWindow : Window
{
    NewWindow optionsWindow = new NewWindow();

    public MainWindow()
    {
        InitializeComponent();

        optionsWindow.button1.Click += new RoutedEventHandler(button1_Click);
        optionsWindow.Show();

    }

    void button1_Click(object sender, RoutedEventArgs e)
    {
        double d = Convert.ToDouble(optionsWindow.textBox1.GetLineText(0));
    }


}
于 2013-10-04T18:05:20.687 回答