gpt4 book ai didi

.net - ItemsControl 绑定(bind)当前对象?

转载 作者:行者123 更新时间:2023-12-02 08:48:15 25 4
gpt4 key购买 nike

我刚刚开始学习 WPF,并尝试学习正确的做事方式。我正在使用 ItemsControl 绑定(bind)到由点组成的 Observable 集合。每个点代表椭圆的中心。但是我不确定如何绑定(bind)到当前项目,绑定(bind)到 Ellipse Geometry 的中心属性。

<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>

最佳答案

如果完全省略路径,它指的是当前对象。或者,您可以指定一个时间段。因此,所有这些都是等价的:

Center="{Binding}"
Center="{Binding .}"
Center="{Binding Path=.}"

关于.net - ItemsControl 绑定(bind)当前对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10744846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com