为什么此文本块仅显示“TextBlock”作为其文本?

时间:2012-04-20 17:12:11

标签: c# wpf

非常新的并且学习C#并跟随PluralSight的一些培训视频。伟大的视频,除了你不能提出问题,当然,我不明白为什么我所看到的是他的屏幕显示的不同,即使我输入了他的确切内容。

Textbox被命名为“Output”。最初,这些操作直接在MainWindow构造函数中(他解释说这不是一个好习惯,所以我们移动了它。最初,这个工作应该是这样的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            Employee e1 = new Employee();
            e1.Name = "Mike";

            Employee e2 = new Employee();
            e2.Name = "Miller";

            Output.Text = e1.Name + " " + e2.Name;


        }
    }
}

这将在TextBlock中显示“Mike Miller”。

但是,当我们将其移至此时,文本所说的全部是“TextBlock”

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {

            Employee e1 = new Employee();
            e1.Name = "Mike";

            Employee e2 = new Employee();
            e2.Name = "Miller";

            Output.Text = e1.Name.Length + " " + e2.Name.Length;

        }

    }
}

我在这里错过了一些简单的东西吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果从两个字符串中取出.Length,它应该可以工作。您使用&#34; +&#34;将字符串连接起来。而且效果不好。

Output.Text = e1.Name + " " + e2.Name; 

答案 1 :(得分:2)

正如Nico Schertler所述,请确认您订阅了Window的Loaded事件:

<Window ... Loaded="MainWindow_Loaded">
    ...
</Window>

在第一种情况下,您的代码会运行,因为在创建Window时会调用Window的构造函数。在第二种情况下,默认情况下不调用事件处理程序。您应该订阅此活动。

答案 2 :(得分:0)

你的问题非常肯定答案: 首先,如果你期望输出是&#34; Mike Miler&#34;将您的代码更改为Bravan发布的代码。 其次,您需要将Loaded事件添加到XAML中的MainWindow声明中。 除了那里的错误...... !!!

快乐编码...... !! :)