小编Sul*_*van的帖子

ListPicker和"SelectedItem必须始终设置为有效值"

我在WCF中有一个类:

[DataContract]
public class Usuario
{
    [DataMember]
    public int ID { get; set; }

    [DataMember]
    public string Nombre { get; set; }

    [DataMember]
    public string Contraseña { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在WP7 Proyect中从WCF读取ObservableCollection并加载ListPicker:

lpUsuarios.ItemSource = listUsuarios;
Run Code Online (Sandbox Code Playgroud)

这项工作还可以.

现在,在WP7中使用"Usuario _usuario = new Usuario()"作为局部变量.

问题是,如果我使用IsolatedStorage保存变量_usuario然后加载并应用:lpUsuarios.SelectedItem = _usuario,则会导致错误:SelectedItem必须始终设置为有效值.

例:

Usuarios _usuario = new Usuario();

private void ButtonSave_Click(object sender, RoutedEventArgs e)
{
     var settings = IsolatedStorageSettings.ApplicationSettings;
     _usuario = lpUsuarios.SelectedItem as Usuario;

     settings.Add("test", _usuario);
     settings.Save();
}
Run Code Online (Sandbox Code Playgroud)

现在,关闭应用程序,然后打开:

private void ButtonLoad_Click(object sender, RoutedEventArgs e)
{
     settings.TryGetValue<Usuario>("test", …
Run Code Online (Sandbox Code Playgroud)

silverlight-toolkit windows-phone-7 listpicker

2
推荐指数
1
解决办法
3575
查看次数