現時点では、ローカルデータベースを使用するWindows PhoneにSilverlightアプリケーションがあります。基本的にはlistBoxが生成され、保存された 'クライアント'の現在のリストが表示されます。今私は、クライアントの詳細の1つを編集させることができるようにしたいと思います。このために、ユーザーがメインページからボタンをクリックするたびに読み込まれる新しいページを作成しました。このイベントは、次のとおりです。Windowsの他のクラスからオブジェクトを取得する
上記の説明では、どのクライアントが選択されているかを確認し、selectedClientとして保存してEditClientページに移動します。
私は、次の方法持ってEditClientクラスで:
public void saveButton_Click(object sender, RoutedEventArgs e)
{
//Get the client that is selected
ClientItem clientForDelete = mainPage.selectedClient;
mainPage.ClientItems.Remove(clientForDelete);
mainPage.clientDB.ClientItems.DeleteOnSubmit(clientForDelete);
// Create a new client based on the text boxes
ClientItem newClient = new ClientItem { ClientName = newClientNameTextBox.Text, ClientSurname = newClientSurnameTextBox.Text, ClientCompany = newClientCompanyTextBox.Text, ClientPhone = int.Parse(newClientPhoneTextBox.Text) };
// Add new client to the database
mainPage.clientDB.ClientItems.InsertOnSubmit(newClient);
// Sava database changes
mainPage.clientDB.SubmitChanges();
// Go to main screen
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
私はこのコードを実行すると、それを実行しようとしたとき、私はとNullReferenceExceptionを取得:
mainPage.ClientItems.Remove(clientForDelete);
selectedClientがnullであるためですが。ヌルでないオブジェクトを他のクラスから取得するにはどうすればよいですか?なぜなら、ユーザーが操作をキャンセルすることを決定した場合にのみ、メインクラスから項目を削除したくないからです。また、ページが読み込まれたときにそのクライアントの詳細を表示したい、私はオブジェクトを取得するために管理する場合、私は方法を知っている:)。おかげ