MainWindow_LoadedはWPFアプリケーションでは起動されません

私は現在、 Pluralsight C#Fundamentals:Part 1 に従っており、クラスとオブジェクトセクションでは、Visual Studioで新しいWPFアプリケーションを作成し、コード。これにより、以下が得られる。

namespace WpfApplication1
{
    /// 
/// Interaction logic for MainWindow.xaml ///
 
    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;
        }
    }
}

従業員は基本的にコンストラクタの動作を示すために単一のインスタンス変数 Name で定義されたダミークラスです。

コードの最後の行で更新しようとしている出力という MainWindow.xamlTextBlock もあります。

最初はコードをコンストラクタ MainWindowMainWindow_Loaded に含めましたが、このチュートリアルではこれは悪い習慣であり、最初のコードスニペットのように見えるはずです。

しかし、これはアプリケーションの動作を停止させます。私の質問は何ですか?

チュートリアルは古くなっていますか?私は間違ったバージョンを実行していますか?それはベータで変更されましたか?

ありがとう。

9
ウィンドウの読み込み済みイベントを購読していますか?
追加された 著者 k.m,

4 答え

LoadedイベントがMainWindowのXAMLにMainWindow_Loadedにマップされていることを確認してください。

編集:それはより役立つように、答えに私のコメントを下に移動:

MainWindow.xaml(MainWindow.xaml.csではなく)を開き、ウィンドウをクリックして(コントロールが1つも選択されていないことを確認してください)、プロパティボックスを開きます(F4はそうすると思います)。タブをクリックし、Loadedを見つけ、MainWindow_Loadedにマップされていることを確認します(空白の場合は、既存のものを選択する必要があります)

25
追加された
それだった! Loadedイベントのテキスト入力を最初にダブルクリックしたときに Window_Loaded を保持しなかった理由はわかりません。空の状態でダブルクリックすると、新しい Window_Loaded_1 メソッドが作成され、テキストボックスの内容を Window_Loaded に置き換えてダブルクリックして確認しますそれはトリックをしたことがわかった。
追加された 著者 Spencer Williams,
MainWindow.xaml(MainWindow.xaml.csではなく)を開き、ウィンドウをクリックして(コントロールが1つも選択されていないことを確認してください)、プロパティボックスを開きます(F4はそうすると思います)。 Loadedを見つけ、MainWindow_Loadedにマップされていることを確認します(空白の場合は、既存のものを選択する必要があります)。
追加された 著者 BlackICE,
私はC#とVS2010を初めて使っています。
追加された 著者 Ash,
ご返信ありがとうございます。一度私がキーワードを見つけたら、 msdnいくつかのgoogle fooで、Microsoft.com/ja-us/library/ms366768(v = 80).aspx いくつかの正解があるので、あなたが最初に答えたので、答えとしてあなたのものを選択します。
追加された 著者 Ash,

これをプログラム的に実行したい場合は、次のものを使用できます。

public MainWindow()
{
    Loaded += MainWindow_Loaded
    InitializeComponent();
}
6
追加された

読み込み済みイベントの実際の購読が不足している可能性がありますので、次の2通りの方法で修正できます:

XAML:


コードの背後に、例えば。コンストラクタで:

public MainWindow()
{
    InitializeComponent();
    Loaded += MainWindow_Loaded;
}
5
追加された

私はMainWindow.xamlにLoaded = "Window_Loaded"が見つかりませんでした。おそらく、デザイナービューの下にあるxamlの8行目に表示されます。私はまた、PluralsightプログラムをWPFのさまざまなものに使用しています。ディスパッチャとbackgroundWorkerは、PLCのような負荷の高いWPFアプリケーションでは不可欠です。イベントベースのタスクとUIの代理人は、ウィンドウと同じです。 Loadedは、ロード時の発火を除いて、on_clickイベントとまったく同じです。

0
追加された