1

次のコード行

TreeView treeview = (TreeView)currentGroup.Content;

エラーをリストします

'TreeView' は、' System.Windows.Forms.TreeView' と ' System.Windows.Controls.TreeView'の間のあいまいな参照です

どちらの参照も使用するように明示的に述べる必要があるため、理由はわかっていますTreeView

System.Windows.Controls.TreeView treeview = (System.Windows.Controls.TreeView)currentGroup.Content;

このためのベストプラクティスは何ですか? TreeViewいくつかの方法で広範囲に使用する場合、どの参照を使用する必要があるかを定義する別の(より適切な)方法はありますか?

4

4 に答える 4

6

System.Windows.Forms.TreeViewたとえば、特に使用する場合は、追加するだけです

using TreeView = System.Windows.Forms.TreeView;

を using ステートメント リストに追加し、このクラス内ではデフォルトで、コンパイラは を使用すると想定System.Windows.Forms.TreeViewしますTreeView

于 2012-08-25T15:24:54.490 に答える
4

usingステートメントでエイリアスを使用します。

using WF = System.Windows.Forms;
using WC = System.Windows.Controls;

次に、次のように簡単に使用できます。

WF::TreeView tv1;

WC::TreeView tv2;

コロンが 2 つあると、プレフィックスが名前空間として扱われるようになります。そのため、WF というクラスを作成した場合でも、エイリアスは引き続き機能します。

于 2012-08-25T15:29:01.090 に答える
1

キャストしているので、 varキーワードを使用して入力を節約することもできます。

var treeview = (System.Windows.Controls.TreeView)currentGroup.Content;
于 2012-08-25T15:26:44.923 に答える
1

簡単な解決策:var treeview = currentGroup.Content;


使用できない場合の解決策 var:ファイルの先頭でこれを変更するとエイリアスが作成されるため、元の例が次のように変更されusing System.Windows.Controls;ますusing cntrl = System.Windows.Controls;

cntrl.TreeView treeView;
treeView = (cntrl.TreeView)currentGroup.Content;

Contentキャストする必要がある場合は、2 つを組み合わせて

var treeView = (cntrl.TreeView)currentGroup.Content;
于 2012-08-25T15:30:42.567 に答える