我有以下问题:
我有一个ListBox,其中的项目位于Canvas上。我希望能够将其元素设置为xamly。 ItemContainerStyle看起来像这样:
<Style x:Key="ElementContainerStyle" TargetType="ListBoxItem" >
<Setter Property="Canvas.Top" Value="{Binding BoundingBox.Y}" />
<Setter Property="Canvas.Left" Value="{Binding BoundingBox.X}" />
<Setter Property="Width" Value="{Binding BoundingBox.Width}" />
<Setter Property="Height" Value="{Binding BoundingBox.Height}" />
...
</Style>
这样的样式SL与InnerException的消息崩溃:
System.NotSupportedException:无法设置只读属性
为什么是只读属性?如果我在那里放置常规值(不是数据有限),它运行良好,除了 - 这不是我想要的。
我期待SL4的新功能(比如绑定到Width和Height属性的能力),但似乎这样的技巧仍然无法完成?
它在WPF中运行良好..
任何人都可以对此有所了解吗?
答案 0 :(得分:1)
Silverlight不支持将绑定分配给Setter.Value属性。查看此blog post以获取解决方法,该方法使用附加属性在将样式应用于实例时创建/分配绑定。