Dre*_*kes 20 .net wpf xaml dependency-properties compilation
通常情况下,我不会在SO上发布错误消息,但在谷歌搜索发现只有一次点击之后,我认为我至少会在这里发现这个错误.
我有一个自定义控件调用Sparkline
一个名为Values
type 的依赖属性unit[]
.这是我在一个例子中使用它DataTemplate
:
<DataTemplate DataType="{x:Type Activity:ActivityHistory}">
<Controls:Sparkline Grid.Column="1" Values="{Binding Path=Values}" />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
此代码无法编译.我收到错误消息:
模板部分不支持"PropertyArrayStart"类型的标签.
行/列编号表示Values
属性的开头.
这真的让我失望了.在Google上搜索返回了一个结果,其中John_C遇到了完全相同的问题.不幸的是,他的解决方案涉及将控件移动到单独的组件.好吧,我的已经在一个单独的集会.我的猜测是其他东西在起作用.
我从来没有听说过PropertyArrayStart
.搜索只返回与XAML序列化相关的几页.有趣的东西,但没有多大帮助.
考虑到这一点,我无法想到框架中具有数组类型的任何依赖属性.这是允许的吗?
我也尝试使用嵌套元素而不是标记扩展名Binding
.
<DataTemplate DataType="{x:Type Activity:ActivityHistory}">
<Controls:Sparkline Grid.Column="1">
<Controls:Sparkline.Values>
<Binding Path="Values"/>
</Controls:Sparkline.Values>
</Controls:Sparkline>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
......还是没有运气
欢迎任何想法!
Dre*_*kes 53
这是一个多事的27分钟...... :)
更改依赖项属性的类型unit[]
以IList<unit>
解决问题.最重要的是,由于阵列已经实现了该接口,所以它没有回复许多代码更改.
我不确定是否通过接口(callvirt)调度到数组的速度较慢.我的猜测是肯定的.
原始的错误消息暗示这里发生了一些我不太了解的事情.我会接受任何正确解释的答案.