Я пытаюсь создать CheckBoxList для элемента управления Silverlight, который я строю, и у меня возникают некоторые проблемы с его настройкой.
Что мне нужно, так это CheckBoxList, который оборачивает CheckBoxes вертикально в 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, но они либо многословны, либо я не могу заставить их работать.
Конечно, есть простой способ установить высоту панели WrapPanel в Silverlight?