将一些东西绑定到ListBox的SelectedIndex很容易,但我希望ListBox中的每个项都能够绑定到列表中的索引.
可能听起来很奇怪,所以这就是我要做的事情:
X
我想将超链接的TAG属性绑定到相关项的索引.因此,当用户单击超链接时,我可以使用该超链接的TAG属性确定导致事件的项目.
var hyperlink = (Hyperlink)sender; var index = Convert.ToInt32(hyperlink.Tag);
建议?
据我所知,实际上没有一个属性可以指示您项目的索引.如果您可以访问ListBox绑定到的项目的原始列表,则可以访问超链接的DataContext以确定项目的索引,如下所示:
var hyperlink = (Hyperlink)sender; var item = (SourceType)hyperlink.DataContext; int index = sourceList.IndexOf(item);
或者,您可以在超链接上调用ItemsControl.ContainerFromElement以获取与超链接关联的ListBoxItem,然后在ListBox中找到ListBoxItem的位置,但它并不能真正获得您尚未拥有的任何内容.