今天帮忙同事调试一个自定义Panel的问题, 很奇怪, 利用Binding可以通过ItemSource来添加控件,但是在ListBox的xaml里添加几个ListBoxItem却报异常:
VisualTree of ItemsPanelTemplate must be a single element.
原因有2:
1)ListBox的ItemPanelTemplate使用自定义Panel时, 需要设置IsItemHost=“True"
2)这个自定义Panel里自己实现了很多依赖属性, 注册依赖属性时用PropertyMetaData调用布局回调, 而不是用FrameworkElementMedaData来通过AffectArrange的Flag来影响布局。