如何在RadListPicker中更改selectedIndex的值

时间:2013-02-20 19:53:27

标签: c# telerik windows-phone-8 itemssource selectedvalue

在我的Windows Phone应用中,我覆盖OnNavigatedTo方法以填充RadListPicker一些信息。我有两个数组:一个是大小为n的预填充DateTime数组,第二个是大小为n的预填充字符串数组。我想将这两个数组分配给RadListPicker,这样字符串数组就是显示的内容,即用户看到的选项,以及DateTimeArray是RadListPicker.SelectedValue返回的内容。

当我以这种方式尝试时,我得到了一个调试器中断

private void ShowResults(DateTime[] arrayDateTime, string[] arrayString, timeTypeEnum timeType)
        {
            radListPicker.ItemsSource = arrayString;
            radListPicker.SelectedValue = arrayDateTime;
            radListPicker.SelectedIndex = 4;
}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

奇怪的是,此值arrayDateTimeDateTime[] Array,因此您需要选择ItemIndex或某些序数值,例如

radListPicker.SelectedValue = arrayDateTime[radListPicker.SelectedItemIndex];

答案 1 :(得分:0)

你在这里混合类型。首先,您将类型字符串的项填充到列表选择器。然后,稍后您告诉列表选择器选择DateTime类型的值。您需要确保两个数组包含相同的类型(例如,两个带有字符串对象的数组或两个带有DateTime对象的数组)。

在Google上进行快速搜索我发现所选项目的设置也可以使用

完成
radListPicker.SelectedItems.Add();

因此,在您的情况下,当两个数组都具有相同类型的元素时,您可以使用:

private void ShowResults(DateTime[] selectedItems, DateTime[] allItems, timeTypeEnum timeType)
{
    radListPicker.ItemsSource = allItems;
    for (var item in selectedItems)
        radListPicker.SelectedItems.Add(item);
}