바인딩 문제가 있습니다.WPF 바인딩 속성을 찾을 수 없습니다.
다음 줄 : Center = "{바인딩 위치, RelativeSource TemplatedParent}" 런타임에 문제가 발생합니다. 나는 위치에 대한 System.Windows.Point을 사용하고
public interface IRadarReader
{
BindingList<RadarEntity> Entities { get; }
RadarEntity LocalPlayer { get; }
bool Enabled { get; set; }
}
public class RadarEntity
{
public Point Position { get; set; }
public PlayerTeam Team { get; set; }
public EntityType Type { get; set; }
}
:
System.Windows.Data Error: 40 : BindingExpression path error: 'Position' property not found on 'object' ''ContentPresenter' (Name='')'. BindingExpression:Path=Position; DataItem='ContentPresenter' (Name=''); target element is 'EllipseGeometry' (HashCode=63639374); target property is 'Center' (type 'Point')
이 내 모델이다 : 그것은 나에게 오류를 제공합니다. 나는 사물의 나머지 부분을 볼 수 스눕 2.8.0에서
<Window.Resources>
<l:RadarTeamToColorConverter x:Key="RadarTeamToColorConverter"/>
</Window.Resources>
<Grid>
<GroupBox Header="Radar">
<Viewbox>
<ItemsControl ItemsSource="{Binding GameReader.RadarReader.Entities}" Background="#FFA4D16E">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Width="100" Height="100"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Path Fill="{Binding Team, Converter={StaticResource RadarTeamToColorConverter}}">
<Path.Data>
<EllipseGeometry x:Name="PlayerEllipse"
Center="{Binding Position, RelativeSource={RelativeSource TemplatedParent}}"
RadiusX="5"
RadiusY="5"/>
</Path.Data>
</Path>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Viewbox>
</GroupBox>
</Grid>
가 제대로 바인더 제본된다. 값 변환기가 작동 중입니다. 스누프에서이 "위치"속성 만 빨간색으로 강조 표시됩니다.
어디서 오류가 있습니까?
햄릿 anser 작품 종류. 이 오류가 발생하지 않고 캔버스 윤곽을 스눕 (snoop)으로 볼 수 있지만 줄임표가 표시되지 않습니다. – Hooch
@Hooch :'Path'의'Stroke' 속성도 변경해야합니다. 나는 이것을 점검해야 할 것이다. 나는 시각적 인 나무 개념과 혼동된다. p, ps, 바인딩이 실제로'Position' 속성을 읽는가? getter에 중단 점을 넣습니다. 바인딩이 실제로 작동한다면 그것은 신뢰할 수있는 방법입니다. –
변환기가있는 제 바인딩이 작동하지 않는 것을 발견했습니다. My Converter는 System.Media.Colors를 반환합니다. 제가 손으로 색을 칠한다면 그것은 작동합니다. – Hooch