无法设置数据绑定ListBox的SelectedListIndex属性,为什么?

时间:2012-04-10 18:41:28

标签: c# windows-phone-7 listbox

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

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

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

            lstReading.DataContext = IQText;

其中,IQText是IEnumerable<dictIQ>,并包含BookmarkSelectedIndex作为数据元素。可以使用IQText中的其他数据元素,但无法设置listindex。有人可以让我知道为什么吗?

2 个答案:

答案 0 :(得分:1)

BookmarkSelectedIndex课程内是否有dictIQ?所以,每个项目只有一个BookmarkSelectedIndex,而不是每个集合!

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

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

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

答案 1 :(得分:1)

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

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();