내 응용 프로그램에는 각 지점에 아이콘이있는 점 집합이있는 선이 있습니다. 나는 캔버스 요소 내에 다음 XAML을 가지고바인딩 된 ObservableCollection에 항목을 추가 할 때 WPF 폴리 라인의 변환기가 호출되지 않습니다.
<!-- A route line -->
<Polyline Canvas.ZIndex="1" Stroke="Green" StrokeThickness="5" Points="{Binding SelectedRoute.Items, Converter={StaticResource routePointsConverter}}"></Polyline>
<!-- The icons on a route line -->
<ItemsControl Canvas.ZIndex="2" ItemsSource="{Binding SelectedRoute.Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding X, Converter={StaticResource canvasIconCenterConverter}}"/>
<Setter Property="Canvas.Top" Value="{Binding Y, Converter={StaticResource canvasIconCenterConverter}}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="Graphics\Icons\x.png" Width="20" Height="20"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
SelectedRoute.Items는 ObservableCollection에 있습니다. 문제는 폴리 라인이 업데이트되지 않고 아이템이 SelectedRoute.Items에 추가된다는 것입니다. 항목이 항목에 추가되면 아이콘이 추가됩니다. SelectedRoute의 바운드 Items를 다른 것으로 변경 한 다음 다시 바꿀 경우 선도 정확하게 그려집니다. 이 문제는 특히 Polyline 문제입니다.
디버깅 할 때 항목 추가시 Polyline의 변환기가 호출되지 않음을 알 수 있습니다. 왜 이런 일이 일어나는 걸까요?
참고로 해결 방법을 찾았지만 표시된 솔루션에서 작동하지 않는 이유를 알고 싶습니다.