gpt4 book ai didi

xaml - 如何获取项目控件中项目的索引

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

我想显示项目控件中项目的当前索引:

<TextBlock Foreground="#ffffffff"  Margin="8,8,2,2" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Items.CurrentIndex}" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right"/>

这是我最好的猜测。我遇到了许多可能的解决方案,但是使用alternationcount(看起来在silverlight中不受支持)或其他解决方案并没有给我结果。

项目控件如下所示:

<ItemsControl Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" Grid.Row="6" ItemsSource="{Binding Alternatives, Mode=TwoWay}" ></ItemsControl>

绑定(bind)到 itemscontrol 的列表是一个具有一些属性的简单对象。

我真的很喜欢在 XAML 中执行此操作,因为我们在很多页面上重用该对象。

任何好的建议都会很棒。

PS:我不想要用户交互后的索引,它应该自动检索。

最佳答案

如果您想要项目控件中项目的索引 - 如果有某种选择,这对我来说才有意义。但 itemsscontrol 没有选择器,因此没有选择,因此没有选择更改事件。所以如果你想要一些选择,请使用列表框

还有一件事

<ItemsControl ItemsSource="{Binding Alternatives, Mode=TwoWay}" ></ItemsControl>

mode=twoway 没有意义,因为您的 itemsscontrol 永远不会设置下划线源。

编辑:我只是假设你想从你的评论中得到什么。您可以使用 ICollectionView 来迭代您的项目。但你的 Itemscontrol 当然不能显示这一点。但您可以更改项目本身以显示迭代

 ICollectionView view = CollectionViewsource.GetDefaultView(Alternatives);
view.CurrentChanged += (s,a) =>
{
var current = this.view.CurrentItem;
//to stuff with your current item here
};

您想要迭代的其他地方

 view.MoveCurrentToNext();

你也应该处理第一个和最后一个项目以及那些东西。

关于xaml - 如何获取项目控件中项目的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179878/

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