0

我有一个椭圆(节点)列表,其中包含归因于每个节点的各种数据。我将环中的椭圆添加到 ItemsControl。我添加它们的顺序是我想要保留的顺序,因为我用它来找出我点击了哪个节点:

ItemsControl.Items.IndexOf(UIElem);

它第一次工作正常,但是返回的值说,特定位置的节点发生了变化。

我想我的问题是 ItemsControl 是否保留了我添加元素的顺序?有没有更简单的方法来计算我点击了哪个椭圆?我一直在使用以下内容:

Ellipse UIElem = (Ellipse)VisualTreeHelper.HitTest(ItemsControl, e.GetPosition(ItemsControl)).VisualHit)

我想要做的就是让工具提示显示节点的名称。

4

1 回答 1

0

您是否为每个椭圆指定了一个事件处理程序,例如 ButtonBase.Click?如果是,则使用处理程序函数的 sender 或 e.OriginalSource 属性。您还可以使用 Tag 属性,您可以在其中绑定您的项目椭圆或您尝试检索的任何其他组件。

另一个更“wpf”的解决方案是使用 Ellipse.Triggers 或 Style.Triggers 在 xaml 中执行此操作,但为了更具体,我想查看一些 xaml 代码 - 特别是您的 DataTemplate。

于 2013-01-29T23:23:17.427 回答