Saya menggunakan Visual Studio untuk membuat aplikasi GUI di C #. Toolbox berfungsi sebagai palet komponen yang bagus yang memungkinkan saya untuk dengan mudah menarik dan melepas tombol dan elemen lainnya (untuk kejelasan saya akan mengatakan tombol setiap kali saya maksudkan "kontrol") ke formulir saya, yang membuat bentuk statis cukup mudah dilakukan. Namun, saya mengalami dua masalah:
- Membuat tombol di tempat pertama adalah banyak pekerjaan. Ketika saya memiliki bentuk yang tidak statis (mis. Tombol atau kontrol lain dibuat pada saat run time sesuai dengan apa yang dilakukan pengguna) Saya tidak bisa menggunakan palet sama sekali. Sebaliknya saya harus membuat setiap tombol secara manual, dengan memanggil konstruktor dalam metode apa pun yang saya gunakan, dan kemudian secara manual menginisialisasi dengan menentukan tinggi tombol, lebar, posisi, label, event handler dan sebagainya. Ini sangat membosankan karena saya harus menebak semua parameter kosmetik ini tanpa bisa melihat seperti apa bentuknya, dan juga menghasilkan banyak baris kode berulang untuk setiap tombol.
- Membuat tombol melakukan sesuatu juga banyak pekerjaan. Berurusan dengan acara dalam aplikasi fitur lengkap adalah rasa sakit yang sangat besar. Satu-satunya cara saya tahu bagaimana melakukan ini adalah dengan memilih tombol, pergi ke tab acara di propertinya, klik
OnClick
acara sehingga menghasilkan acara dalamForm
kode, lalu isi isi acara. Karena saya ingin memisahkan logika dan presentasi, semua penangan acara saya akhirnya menjadi panggilan satu baris ke fungsi logika bisnis yang sesuai. Tetapi menggunakan ini untuk banyak tombol (misalnya, bayangkan jumlah tombol yang ada dalam aplikasi seperti MS Word) mencemari kode sayaForm
dengan puluhan metode event handler boilerplate dan sulit untuk mempertahankannya.
Karena itu, setiap program GUI yang lebih rumit daripada Hello World sangat tidak praktis untuk benar-benar membuat saya. Untuk lebih jelasnya, saya tidak punya masalah apa pun berurusan dengan kompleksitas dalam program yang saya tulis yang memiliki UI minimal - Saya merasa seperti saya dapat menggunakan OOP dengan tingkat kompetensi yang adil untuk menyusun dengan rapi kode logika bisnis saya. Tetapi ketika mengembangkan GUI, saya mandek. Tampaknya sangat membosankan sehingga saya merasa seperti saya menemukan kembali roda, dan ada sebuah buku di luar sana yang menjelaskan bagaimana melakukan GUI dengan benar yang belum saya baca.
Apakah saya melewatkan sesuatu? Atau apakah semua pengembang C # hanya menerima daftar pengendali acara berulang dan kode pembuatan tombol yang tak ada habisnya?
Sebagai petunjuk (semoga bermanfaat), saya berharap jawaban yang baik akan berbicara tentang:
- Menggunakan teknik OOP (seperti pola pabrik) untuk menyederhanakan pembuatan tombol berulang
- Menggabungkan banyak penangan peristiwa ke dalam metode tunggal yang memeriksa
Sender
untuk mengetahui tombol mana yang memanggilnya, dan berperilaku sesuai - XAML dan menggunakan WPF, bukan Windows Forms
Anda tidak harus menyebutkan semua ini, tentu saja. Hanya tebakan terbaik saya untuk jawaban seperti apa yang saya cari.