Silverlight 4:是否可以绑定ListBoxItem的width和height属性?

时间:2010-04-21 12:22:43

标签: silverlight-4.0

我有以下问题:

我有一个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中运行良好..

任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:1)

Silverlight不支持将绑定分配给Setter.Value属性。查看此blog post以获取解决方法,该方法使用附加属性在将样式应用于实例时创建/分配绑定。