2

VS 2010でWPFアプリケーションを作成し、グリッドにボタンを配置すると、C#コードからコントロールにアクセスできます。XAMLの「名前」フィールドと同じ名前のボタンクラスインスタンス変数があります。しかし、VS 2012 RCを使用してWPFプロジェクトを作成すると、コントロールのインスタンスが表示されません。何が問題になる可能性がありますか?VS 2010と2012の間にデフォルトのプロジェクト設定の違いはありますか?

4

3 に答える 3

4

コードビハインドについて話している場合は、ボタンの属性 を使用するだけで、ボタンを再度宣言しなくてもボタンにアクセスできるはずです。x:nameここで、MVVMについて話している場合は、ボタンを使用する前にデータコンテキストを設定する必要があります。

2012(リリース候補)を使用している場合、xamlで宣言された要素にアクセスしようとすると(リリース候補)、csファイルの背後にあるコードのインテリセンスが得られず(コードを記述せずにコードを記述しなければなりません)、その名前の要素はプロジェクト以外にないことを示唆しています。コンパイルして動作します。したがって、インテリセンスなしでコードを記述してコンパイルすることをお勧めします。

YourButton.IsEnabled = false;

これは、MVVMの使用を促進するためのVS 2012のデフォルトであると思いますが、それは単なる考えにすぎません。

于 2012-09-01T22:10:23.377 に答える
2

静的メソッドでコントロールにアクセスしていないことを確認する必要があります。

于 2013-03-06T20:42:19.337 に答える
0

同じ問題で別の経験があります。

コードビハインドから要素にアクセスしようとすると、それを示すインテリセンスがなく、メソッドを使用できませんでした。そこで、プロジェクトをデバッグしようとしましたが、論理的で構文エラーではないため、XAMLコードやその他の場所に表示されない問題があることがわかりました。私はそれを修正し、それから私はコードビハインドからそれにアクセスすることができました。アクセスしようとしている要素が正しく定義されており、論理的に正しいプロパティを持っていることを確認してください。

<ComboBox x:Name="_days" Selected="0"  Width="50"/> 

これはコードであり、Selectedプロパティは論理的に正しくありませんでした。これは、コンボボックスに要素がなく、0番目の要素を選択できないためです。

于 2013-03-13T17:12:17.070 に答える