Silverlight CheckBoxList / RelativeSource问题

时间:2010-11-09 16:52:21

标签: silverlight checkboxlist relativesource

我正在为我正在构建的Silverlight控件构建一个CheckBoxList,而我在使用它时遇到了一些麻烦。

我所追求的是一个CheckBoxList,它将CheckBoxes垂直包装在* height的GridRow中。我遇到的问题是我想将WrapPanel的高度指定为它所在行的高度。

在WPF中,它看起来如下:

<ScrollViewer BorderThickness="0"
              HorizontalScrollBarVisibility="Auto" 
              VerticalScrollBarVisibility="Hidden" >
    <ItemsControl Name="ic">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <toolkit:WrapPanel Orientation="Vertical"
                                    Height="{Binding Path=ActualHeight,
                                            RelativeSource={RelativeSource Mode=FindAncestor, 
                                            AncestorType={x:Type ScrollContentPresenter}}}" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <CheckBox Content="{Binding Path=Description}" Margin="0,0,10,2" FontSize="12"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

Silverlight不支持RelativeSource以同样的方式支持,因此我无法以与WPF相同的方式执行此操作。我已经看到了一些针对RelativeSource的工作,但它们要么大量冗长,要么我似乎无法让它们发挥作用。

当然有一种简单的方法可以在Silverlight中设置WrapPanel的高度吗?

1 个答案:

答案 0 :(得分:0)

如果有人碰到这个并且还不知道,则在Silverlight 5中添加了RelativeSource