Listbox tidak dapat diakses karena tingkat perlindungannya. Kesalahan di Windows Phone 8.1

Saya mencoba menambahkan beberapa teks ke listBox dalam formulir, dari formulir lain, tetapi saya mendapatkan garis bawah merah pada kode yang seharusnya ditambahkan ke listBox. Apakah tidak mungkin meneruskan data ke formulir di kelas dari kelas lain yang saya coba lakukan? Saya menggunakan VisualStudio 2013

Saya memiliki kode ini yang saya gunakan di kelas MainForm:

    // Local object of SearchResultForm
    SearchResultForm frmSearchResult = new SearchResultForm();
    frmSearchResult.Show();
    frmSearchResult.listBox.IsEnabled == false;

Pesan kesalahan: tidak dapat diakses karena levelnya dilindungi


person Devi Prasad    schedule 09.04.2015    source sumber
comment
Apakah Anda membuat kotak daftar di SearchResultForm secara manual?   -  person mayowa ogundele    schedule 09.04.2015
comment
Ya, saya membuat listbox secara manual di SearchResultForm   -  person Devi Prasad    schedule 09.04.2015
comment
Ubah kelas Anda sendiri menjadi public. Dan apa yang Anda maksud dengan 'bentuk'? Selama saya bekerja dengan WP8 saya tidak memiliki formulir apa pun. Apa yang Anda lihat disebut 'halaman'. Apakah Anda menggunakan Formulir Xamarin?   -  person Paweł Mach    schedule 09.04.2015
comment
Tidak, saya menggunakan XAML Untuk mendesain   -  person Devi Prasad    schedule 09.04.2015


Jawaban (2)


Tambahkan Parameter Ke kelas Anda Kelas SearchResultForm di sini kelas saya adalah showvideolbx

      public class showvideolbx
      {
         public ListBox SVListBox { get; set; }
      }

Tetapkan Id ListBox ke Parameter Kelas

     showvideolbx lbbox = new showvideolbx();
        lbbox.SVListBox = lbxSongsList;

Lalu Sekarang Anda memanggil kelas Buat dan kemudian Parameter ListBox sebagai

     showvideolbx svlbox;
     if (svlbox.SVListBox.IsEnabled == false)
                svlbox.SVListBox.IsEnabled = true;

Ini akan Berhasil, silakan coba sekali.

person Community    schedule 09.04.2015
comment
Jawaban yang luar biasa Terima kasih Chinni - person Devi Prasad; 09.04.2015
comment
Anda benar-benar tidak ingin memperkenalkan kelas lain untuk memberikan referensi. - person CodeCaster; 09.04.2015
comment
Ya, ini akan berhasil, tetapi ini adalah solusi yang sangat buruk dan rumit. - person CodeCaster; 09.04.2015
comment
Akan lebih mudah jika Anda mengekspos ListBox Anda sebagai properti di frmSearchResult: public ListBox formList { get {return listBox; } }. - person Romasz; 09.04.2015

Sepertinya listBox Anda adalah private anggota SearchResultForm; itu artinya tidak dapat diakses dari luar kelas SearchResultForm. Anda dapat membuat variabel listBox menjadi public atau internal, tetapi cara yang lebih baik untuk melakukannya adalah dengan membuat metode mutator di kelas SearchResultForm seperti:

public void AddItemToListBox(string text) 
{
    listBox.Items.Add(text);
}

dan kemudian dari formulir utama Anda, Anda akan melakukan:

  // Local object of SearchResultForm
SearchResultForm frmSearchResult = new SearchResultForm();
frmSearchResult.Show();
frmSearchResult.AddItemToListBox("test");

Dengan cara ini Anda dapat memperbarui listBox tanpa memperlihatkan detail implementasi kelas SearchResultForm Anda.

person Dan Dinu    schedule 09.04.2015
comment
Halo Dan Dinu Terima kasih atas Pemutaran Ulang Anda, Silakan lihat lagi Pertanyaannya yang Telah Diedit - person Devi Prasad; 09.04.2015