Свяжите свойства элементов данных ItemsTemplate и ItemsPanelTemplate
У меня есть ItemsControl
с элементами, оформленными как UserControl. мой ItemsControl.Items
Panel
является шаблоном Canvas
,
На данный момент я установил эти свойства width и height моего usercontrol вручную, и это выглядит так:
<ItemsControl x:Name="curveList"
ItemsSource="{Binding SplineVMList}"
Background="{x:Null}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas x:Name="canvas" Margin="46,60,83,46"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:SplineControl Width="300" Height="300" Canvas.Bottom="0" Canvas.Left="0" IsSelected="{Binding IsSelected, Mode=TwoWay}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Bottom" Value="0"/>
<Setter Property="Canvas.Left" Value="0"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
То, что я хочу, это привязать свойства width и height моего usercontrol к свойствам моего Canvas. Это просто возможно?
1 ответ
Вы пробовали относительный источник привязки?
например
Width="{Binding ActualWidth,
RelativeSource={RelativeSource AncestorType=Canvas}}"