2012-05-24 9 views
2

저는 WPF를 배우기 시작했으며 올바른 방법을 배우려고합니다. ItemsControl을 사용하여 Points로 구성된 Observable Collection에 바인딩합니다. 각 점은 타원의 중심을 나타냅니다. 그러나 현재 항목, 타원 기하학의 중심 속성에 바인딩하는 방법을 모르겠습니다.ItemsControl 현재 개체 바인딩?

<EllipseGeometry Center="{Binding Path=????}" RadiusX="10" RadiusY="10"/> 

그러나 예상되는 결과를 얻을 수 있으므로 다소 효과가 있음을 알고 있습니다. 나는 현재의 객체를 어떻게 말할지를 알 수 없다.

<EllipseGeometry Center="10,10" RadiusX="{Binding Path=X}" RadiusY="{Binding Path=Y}"/> 

C# 코드 :

public class ViewModel 
{ 
    public ObservableCollection<Point> PointList { get; private set; } 

    public ViewModel() 
    { 
     PointList = new ObservableCollection<Point>(); 
     AddPoint(new Point(10, 10)); 
     AddPoint(new Point(200, 200)); 
     AddPoint(new Point(500, 500)); 
    } 

    public void AddPoint(Point p) 
    { 
     PointList.Add(p); 
    } 

} 

XAML 코드 :

당신이 완전히 길을두면
<ItemsControl Grid.Row="0" ItemsSource="{Binding Path=PointList}"> 
    <ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <Canvas /> 
    </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <Path Fill="Gold" Stroke="Black" StrokeThickness="1" Tag="Hi" > 
     <Path.Data> 
      <EllipseGeometry Center="{Binding Path=????}" RadiusX="10" RadiusY="10"/> 
     </Path.Data> 
     </Path> 
     <!--<Rectangle Fill="Red" Width="25" Height="25"/>--> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate> 
    <ItemsControl.ItemContainerStyle> 
    <Style> 
     <!--<Setter Property="Canvas.Left" Value="{Binding Path=X}"/> 
     <Setter Property="Canvas.Top" Value="{Binding Path=Y}"/>--> 
    </Style> 
    </ItemsControl.ItemContainerStyle> 
</ItemsControl> 

답변

6

, 현재의 객체를 참조합니다. 또는 기간을 지정할 수 있습니다. 따라서 이들은 모두 같습니다.

Center="{Binding}" 
Center="{Binding .}" 
Center="{Binding Path=.}" 
관련 문제