我正在构建一个自定义面板来在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();
}
}
}
答案 0 :(得分:1)
您需要在TopToBottomOffsetConnector类中定义无参数构造函数,或者传递构造函数所期望的参数。
答案 1 :(得分:0)
为什么不在树上公开Template属性?这样,控件的使用可以设置节点的模板。