麻烦来自wpf中textblock的text和linecount

时间:2013-10-04 17:29:24

标签: c# wpf textbox event-handling line-count

在我的代码中,当我点击提交按钮时,我试图从我的选项窗口中的文本框中获取值。我知道我需要将字符串转换为我已经完成的双重字符串,但我的问题是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));

    }

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

2 个答案:

答案 0 :(得分:0)

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

XAML:

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

视图模型:

public double MyDouble {get;set;} //Probably NotifyPropertyChanged

答案 1 :(得分: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));
    }


}