반응형
ItemsControl DataTemplate에서 캔버스 속성 설정
나는 이것에 데이터 바인딩을 시도하고있다 ItemsControl
:
<ItemsControl ItemsSource="{Binding Path=Nodes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
this를 사용하여 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>
도움이 되었기를 바랍니다
반응형
'Development Tip' 카테고리의 다른 글
SwiftUI는 iOS 12.x 및 이전 버전과 역 호환됩니까? (0) | 2020.11.01 |
---|---|
크로스 플랫폼 IPC (0) | 2020.11.01 |
C # .NET에서 문자열의 문자를 빈 문자로 바꾸는 방법 (0) | 2020.10.31 |
IE에서 클릭 할 수없는 절대 위치 앵커 태그 (텍스트 없음) (0) | 2020.10.31 |
os.listdir ()을 사용하여 숨겨진 파일을 무시하는 방법은 무엇입니까? (0) | 2020.10.31 |