如何将类型从SL应用程序传递到SL库?

时间:2011-04-01 17:00:06

标签: c# silverlight

我正在构建一个自定义面板来在SL中绘制树,该解决方案有一个SL应用程序项目和一个SL库项目(这是面板代码所在的位置)。节点之间的连接是库项目中的用户控件。我想要做的是让SL应用程序项目中的连接然后将连接类型传递给树库,这样树用户连接可以由用户自定义,而无需访问库项目。

我尝试了以下内容:

// pass the type of the connections in the constructor in the SL app project
var TC = new TreeContainer(typeof(TopToBottomConnectors.OffsetConnector),
                           typeof(TopToBottomConnectors.StraightConnector));
.....
// in the SL library, in the measure method
var o = Activator.CreateInstance(TopToBottomOffsetConnectorType.GetType());
// this line throws this exception: No parameterless constructor defined for this object.

非常感谢任何想法或建议。

更新 有一个无参数的构造函数,这里是类:

using System.Windows.Controls;

namespace Graph.SL.LeftToRightConnectors
{
    public partial class OffsetConnector : UserControl
    {
        public OffsetConnector()
        {
            InitializeComponent();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您需要在TopToBottomOffsetConnector类中定义无参数构造函数,或者传递构造函数所期望的参数。

Activator.CreateInstance on MSDN

答案 1 :(得分:0)

为什么不在树上公开Template属性?这样,控件的使用可以设置节点的模板。