C# combobox check box filtrelemesi olmuyor

Onu class yapmayacaksin. Suan kullandigin formun adi LauncherForm olsun;
C#:
class LauncherForm : Form {
    List<MinecraftVersion> versions; // version sinifinin adini bilmedigimden salladim bi sey
  
    public async void listVersions() {
        // onceki kisimlar ayni
        versions = await launcher.GetAllVersionsAsync();
        // sonraki kisimlar ayni
    }
  
    public LauncherForm() {
        InitializeComponent();
        checkRelease.CheckedEvent += (sender, eventArgs) => {
            ComboBox.Items.Clear();
            if (checkRelease.Checked) {
                ComboBox.Items.AddRange(
                    versions
                    .Where(version => "release".Equals(version.Type))
                    .Select(version => version.Name)
                    .ToArray() // Fluent API icin Linq gerekiyor.
                );
            } else {
                ComboBox.Items.AddRange(versions.Select(version => version.Name).ToArray());
            }
        }
    }
}

En tepede bi degisken olusturdum. Bu class'in memberi iste.
 

Dosya Ekleri

  • resim_2025-01-13_153705098.png
    resim_2025-01-13_153705098.png
    41,8 KB · Görüntüleme: 12
Son düzenleme:
Event'in adi checkedchanged'mis. Checkedevent degil. Atmistim aslinda ama tekrar yazarken unutmusum. Benim hatam.

CheckBox.CheckedChanged Event (System.Windows.Forms)

Yani her seyi benden beklemene de gerek yok bu arada. Zaten atmisim, iki kere ornegini vermisim. Kendin de cozebilirdin sanki checkedevent degil de checkedchanged oldugunu?

Version neden hata veriyor kusurabakma yeni yeni kafa yormaya başladım öğrenmeye calısıyorum.
 

Dosya Ekleri

  • resim_2025-01-13_154023616.png
    resim_2025-01-13_154023616.png
    73,9 KB · Görüntüleme: 12

Dosya Ekleri

  • resim_2025-01-13_162251735.png
    resim_2025-01-13_162251735.png
    253,2 KB · Görüntüleme: 11
Yaziyi okursan problem oldukca net aslinda. Linq senin yerine looplari halledecek zaten. Senin bunu looplarin icine yazmana gerek yok, hatta yazmaman lazim. Bir de bunu listVersions icinde yapmaman gerekiyor. Yukarida yazmistim nerede yapman gerektigini.

listVersions'da yapacagin tek degisiklik var versions = await ...; yerine versions = await...; di. versions adli param disarida kalacakti ve tum methodlardan erisilebilir olacakti. Daha sonrasinda constructor'da eventi ekleyecektin verdigim sekilde. Attigim kodu okudun mu hic?

Bu tarz bir projeye girismeden once siddetle tavsiyem once programlama ogrenmek.
 
Yaziyi okursan problem oldukca net aslinda. Linq senin yerine looplari halledecek zaten. Senin bunu looplarin icine yazmana gerek yok, hatta yazmaman lazim. Bir de bunu listVersions icinde yapmaman gerekiyor. Yukarida yazmistim nerede yapman gerektigini.

ListVersions'da yapacagin tek degisiklik var versions = await... Yerine versions = await... Di. Versions adli param disarida kalacakti ve tum methodlardan erisilebilir olacakti. Daha sonrasinda constructor'da Event'i ekleyecektin verdigim sekilde. Attigim kodu okudun mu hiç?

Bu tarz bir projeye girismeden once siddetle tavsiyem once programlama ogrenmek.

Dediğin yerde yaptığım zaman hata aldım o yüzden buraya yazdım
 
Geri
Yukarı