Ash*_*Ash 12 c# wpf visual-studio-2010
我目前正在跟随Pluralsight C# Fundamentals: Part 1并在Classes and Objects片段的视频指示我在Visual Studio中创建一个新的WPF应用程序了,并在代码填写.这导致以下结果.
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("Ash");
Employee e2 = new Employee("Lee");
Output.Text = e1.Name + "" + e2.Name;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Employee基本上是一个虚拟类,它已经用单个实例变量定义,Name以演示构造函数的工作方式.
TextBlock在我的MainWindow.xaml调用中还有一个我Output试图在代码的最后一行更新.
最初我有MainWindow_Loaded构造函数中包含的代码MainWindow,教程说这是不好的做法,它应该看起来像我的第一个代码片段.
但是这会阻止应用程序正常运行 我的问题是什么问题?
教程是否过时了?我运行的是错误的版本吗?它在Beta中有所改变吗?
谢谢.
Bla*_*ICE 27
确保在XAML for MainWindow中将Loaded事件映射到MainWindow_Loaded.
编辑:将我的评论移到下面的答案,因为它似乎更有帮助:
打开MainWindow.xaml(不是MainWindow.xaml.cs),单击窗口(确保没有选择其中一个控件),打开属性框(我相信F4会这样做),点击事件在属性框中选项卡,找到已加载并确保已映射到MainWindow_Loaded(如果它是空白的,您应该能够选择已有的)
如果您想以编程方式执行此操作,可以使用:
public MainWindow()
{
Loaded += MainWindow_Loaded
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
您可能缺少对Loaded事件的实际订阅,您可以通过两种方式解决此问题:
XAML:
<Window ... Loaded="MainWindow_Loaded">
Run Code Online (Sandbox Code Playgroud)
代码背后,例如.在构造函数中:
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
}
Run Code Online (Sandbox Code Playgroud)