0

在我的 Windows Phone 应用程序中,我重写了使用一些信息OnNavigatedTo填充 a 的方法。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;
}

我怎样才能解决这个问题?

4

2 回答 2

0

奇怪的是,这个值arrayDateTime是 aDateTime[] Array所以你需要选择 ItemIndex 或一些序数值,例如

radListPicker.SelectedValue = arrayDateTime[radListPicker.SelectedItemIndex];
于 2013-02-24T02:50:56.893 回答
0

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

在谷歌上快速搜索我发现设置所选项目也可以使用

radListPicker.SelectedItems.Add();

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

private void ShowResults(DateTime[] selectedItems, DateTime[] allItems, timeTypeEnum timeType)
{
    radListPicker.ItemsSource = allItems;
    for (var item in selectedItems)
        radListPicker.SelectedItems.Add(item);
}
于 2013-11-26T07:26:29.780 回答