我有一个中继器视图,它的项源是一个可观察的视图模型集合,并且有一个数据模板。现在,我希望使用数据模板中要使用的特定项的索引。有办法做到这一点吗?注意:中继器视图是UXDivers.Artina库的一部分,但是它应该公开与listview相同的API,因此,一个适用于listview的解决方案可能也适用于中继器。
下面是我到目前为止掌握的代码:
Xaml:
<ctlRep:Repeater
        ItemsSource="{ Binding ListItems }"
        Padding="10, 10"
        Spacing="10"
        Orientation="Vertical">
        <ctlRep:Repeater.ItemTemplate>
            <DataTemplate>
                <elements:StructuredVideoDescriptionItemTemplate />
            </DataTemplate>
        </ctlRep:Repeater.ItemTemplate>
</ctlRep:Repeater>视图模型:
public class VideoDescriptionStructureListItem : ObservableObject
{
    public string Title { get; set; }
    public bool IsNumberic { get; set; }
    public ObservableCollection<string> ListItems { get; set; }
}在数据模板中,我希望能够访问ListItems项(这是一个字符串)和特定项的索引。
发布于 2018-11-02 12:41:22
这可能不是你想要的解决方案,但我最近用以下策略解决了确切的问题
ObservableCollection,而不是string对象,并分配正确的索引。这个班看起来可能是这样的:
class VideoDescriptionViewModel
{
    public string Description { get; private set; }
    public int Index { get; private set; }
    public VideoDescriptionViewModel(string description, int index)
    {
        Description = description;
        Index = index;
    }
}并且您可以构建如下的实例
var videoDescriptionViewModels = videoDescriptions.Select((description, index) => new VideoDescriptionViewModel(description, index));并将其与XAML绑定
<elements:StructuredVideoDescriptionItemTemplate Description="{Binding Description}" 
                                                 Id="{Binding Id}" />https://stackoverflow.com/questions/53117992
复制相似问题