我在WCF類:ListPicker和 「的SelectedItem必須設置爲一個有效的值」
[DataContract]
public class Usuario
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Nombre { get; set; }
[DataMember]
public string Contraseña { get; set; }
}
在WP7 Proyect讀取WCF的ObservableCollection和加載ListPicker有:
lpUsuarios.ItemSource = listUsuarios;
這項工作確定。
現在,WP7使用「Usuario _usuario = new Usuario()」作爲局部變量。
問題是,如果我將變量_usuario保存爲IsolatedStorage,然後加載並應用於: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();
}
現在,關閉應用程序,然後打開:
private void ButtonLoad_Click(object sender, RoutedEventArgs e)
{
settings.TryGetValue<Usuario>("test", out _usuario);
lpUsuarios.SelectedItem = _usuario; <--- ERROR SelectedItem must....
}
在VS2010調試,當打開的應用程序並加載變量_usuario,值是正確的,但不是工作。在
錯誤:的SelectedItem必須始終設置爲有效值,在ListPicker.cs在ListPicker.cs
地點:
// Synchronize SelectedIndex property
if (!_updatingSelection)
{
_updatingSelection = true;
SelectedIndex = newValueIndex;
_updatingSelection = false;
}
¿任何解決方案?
鏈接舉例:PhoneApp1.rar | 666.5 KB | www.megaupload.com/?d=XDZSU3P0
對不起,我的英語。
如果我使用SelectedIndex,工作好,謝謝Etch。
但現在的問題是,如果我想使用方法:
public override bool Equals(object obj)
{
return ID == (obj as Users).ID;
}
public override int GetHashCode()
{
throw new NotImplementedException();
}
如果實現的是,在¿WCF類,在模型視圖?
在XAML中使用:
SelectedItem={Binding SelectedUser, Mode=TwoWay}"
而且在模型視圖使用:
private Usuario selectedUser;
public Usuario SelectedUser
{
get
{
return selectedUser;
} //----------------if i use modelview, the error is produced here
set
{
selectedUser= value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("SelectedUser"));
}
}
}
WCF類:
[DataContract]
public class Usuario
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Nombre { get; set; }
[DataMember]
public string Contraseña { get; set; }
}
感謝
可能重複[Listpicker錯誤的SelectedItem必須始終設置爲有效值(http://stackoverflow.com/questions/7719682/listpicker-error-selecteditem必須始終設置爲有效值) – 2014-01-19 19:50:30