我正在尝试设置listpicker控件的值/ selecteditem-从Windows Phone 7的silverlight工具包中(当用户要在xml中编辑条目时,它将数据从IO中拉出并在文本框/ listpickers中进行设置).
我目前正在尝试使用:
ListPickerSub.SelectedItem = sub;
(sub是一个字符串)
但是它抛出了System.InvalidOperationException
Additional information: SelectedItem must always be set to a valid value.
解决方法:
SelectedItem需要一个ListPickerItem(这是列表中的项目之一).您正在传递一个字符串-因此出错.
您可能会发现设置SelectedIndex更容易.
在不知道填充列表内容的情况下,很难给出设置SelectedItem的相关示例.
编辑:
这是一个如何绑定到字符串的示例.如果没有关于您实际绑定到itemsource的可行示例,这是我能做的最好的事情. (仅提供对象名称或部分代码是不够的.)
假设:
<Controls:ListPicker x:Name="ListPickerSub">
<Controls:ListPicker.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</Controls:ListPicker.ItemTemplate>
<Controls:ListPicker.FullModeItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</Controls:ListPicker.FullModeItemTemplate>
</Controls:ListPicker>
然后,我可以将内容绑定为:
ListPickerSub.ItemsSource = SubItems();
private IEnumerable<string> SubItems()
{
yield return "monday";
yield return "tuesday";
yield return "wednesday";
yield return "thursday";
yield return "friday";
yield return "saturday";
yield return "sunday";
}
并使用以下命令设置SelectedItem:
ListPickerSub.SelectedItem = "sunday";