【发布时间】:2012-01-27 14:47:21
【问题描述】:
我创建了一个自定义用户控件,它基本上是一个ItemsControl,它的ItemsPanelTemplate 设置为画布。
在主页上,我将List<Element> 绑定到它,其中 Element 是一个自定义类。
但是,所有控件都放在彼此的正上方。解决此问题的一种简单方法当然是将 Canvas 设为 WrapPanel,但我不确定这是否会与控件上的拖放功能发生冲突
所以我的问题是,是否有可能在模型Element 中有一个属性来检查它在列表中的哪个位置(如果它在列表中)?
类似:
public class Element
{
public int positionInList { get { return (this.IsInList) ? this.ListPosition : 0; } }
}
更新
我希望完成的是,当元素添加到画布时,它们会自动通过 2 个属性(将绑定到 Canvas.Left 和 Canvas.Top 或类似的东西)选择它们的位置
public double GetX { get { return 50 * (Element.PositionInList % 5); } }
public double GetY { get { return 50 * (Element.PosotionInList / 5); } }
无需手动设置元素在列表中的位置。
【问题讨论】:
标签: c# silverlight list model