반응형
ItemsControl DataTemplate에서 캔버스 속성 설정
나는 이것에 데이터 바인드를 하려고 한다.ItemsControl
:
<ItemsControl ItemsSource="{Binding Path=Nodes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
이것을 사용하여DataTemplate
, 저는 제 개인 포지셔닝하고 있습니다.Node
의 요소Canvas
올바르게:
<DataTemplate DataType="{x:Type Model:EndNode}">
<Controls:EndNodeControl Canvas.Left="{Binding Path=XPos}" Canvas.Top="{Binding Path=YPos}" />
</DataTemplate>
하지만 예상대로 되지 않습니다.노드 요소는 모두 같은 위치에 서로 겹쳐져 있습니다.어떻게 하면 좋을까요?
연결된 속성은 의 직계 하위에서만 작동합니다.Canvas
.ItemsControl
배치하다ContentPresenter
컨트롤은 직계 하위 항목으로 지정되므로 스타일을 추가할 수도 있습니다.
<ItemsControl ItemsSource="{Binding Path=Nodes}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding Path=XPos}" />
<Setter Property="Canvas.Top" Value="{Binding Path=YPos}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
언급URL : https://stackoverflow.com/questions/1265364/setting-canvas-properties-in-an-itemscontrol-datatemplate
반응형
'programing' 카테고리의 다른 글
SQL에서 행을 무작위로 선택하는 방법 (0) | 2023.04.18 |
---|---|
VBA에서 일부 시트 셀 데이터 옆에 프로그래밍 방식으로 버튼을 추가하는 방법은 무엇입니까? (0) | 2023.04.18 |
Git에서 처음 두 개의 커밋을 뭉개시겠습니까? (0) | 2023.04.18 |
Linux 및 OS X에서 로컬 머신의 프라이머리 IP 주소를 취득하는 방법 (0) | 2023.04.18 |
문자열을 셀의 날짜로 변환 (0) | 2023.04.18 |