无法设置数据绑定列表框的选定列表索引属性,原因

本文关键字:列表 索引 属性 原因 设置 数据绑定 | 更新日期: 2023-09-27 18:30:50

我避免问这个问题,但无法设置列表框的选定索引。我已经阅读了其他线程并应用了设置,但它不起作用。

            <ListBox  ItemsSource="{Binding}" 
                      HorizontalAlignment="Right" 
                      Name="lstReading" Height="Auto" 
                      SelectedIndex="{Binding BookmarkSelectedIndex}">

在 something.xaml.cs 中,我是设置

            lstReading.DataContext = IQText;

其中,IQText 是一个IEnumerable<dictIQ>,包括BookmarkSelectedIndex作为数据元素。可以使用 IQText 中的其他数据元素,但无法设置 listindex。有人可以告诉我为什么吗?

无法设置数据绑定列表框的选定列表索引属性,原因

你在dictIQ类里面有BookmarkSelectedIndex吗?因此,每个项目都有一个BookmarkSelectedIndex,而不是每个集合!

您可以在dictIQ之外创建单独的属性BookmarkSelectedIndex,也可以创建从ObservalbeCollection<dictIQ>继承并具有其他属性BookmarkSelectedIndex的类:

public class CollectionWithIndex: ObservalbeCollection<dictIQ>
{
    public int BookmarkSelectedIndex { get; set; }
}

希望您选择适合您的最佳解决方案

运行时使用此代码选择项目...

List<Audio> lst = Audio.GetAudioFiles();
            Audio aufile = new Audio { FileDisplayName = "Select Audio File" };
            lst.Insert(0, aufile);
            lstPickAudio.ItemsSource = lst;
           string FileDisplayName="your condition"
            lstPickAudio.SelectedItem = lst.Where(p => p.FileName == FileDisplayName).First();