1

以下代码行

TreeView treeview = (TreeView)currentGroup.Content;

列出一个错误

System.Windows.Forms.TreeView'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;

双冒号强制将前缀视为命名空间,因此即使您创建了一个名为 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;this 会生成一个别名,因此这会将您的原始示例更改为

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

如果Content必须施放,您可以将两者结合起来

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