2 ContentControls'e yüklenen 2 kullanıcı denetimi ile ana görünümü yükleyen bir gümüş ışığı mvvm uygulamasına sahibim. Düzenleme düğmesini tıklattığımda, 2 yeni kullanıcı denetimi ContentControls'e yüklenir; biri düzenlenmesi gereken verileri (EditData) ve diğer Kaydet ve İptal düğmesini (EditAction) gösterir. i düğmesine kaydetmek tıkladığınızda , bu gibi ayrı GlobalEvents.cs sınıfında tanımlanan bir olay yükseltir:Olay her gün daha fazla yanıyor
public event EventHandler OnSaveButtonClicked;
public void RaiseSaveButtonClicked()
{
this.OnSaveButtonClicked(this, EventArgs.Empty);
}
ve ben aracılığıyla o düzenlenmiş veri aktarmak gerekir çünkü ben, diğer kullanıcı kontrolünde EditData kendisine abone
this.globalEvents.OnSaveButtonClicked += (s, e) => SaveData();
ve kaydet verilerinde
:public void SaveData()
{
globalEvents.RaiseSaveData(EditedGuy);
}
başka eve yükseltir özel EventArgs, bu yüzden bunun yapıcısı koyduk ViewModel var Önceki kullanıcı kontrollerini ControlContent'e yükler ve düzenlenmiş verileri liste kutusunda gösterir. Thats tüm iyi, ama ben düzenlemek ve daha sonra yeniden kaydetmek, her zaman olay iki kez ve tekrar 3 kez, sonra 4 ve daha sonra yükseltir. Bunu sadece bir kez yükseltmek için nasıl yapabilirim? Ben her zaman ben düzenle seçeneğini tıklayın, çünkü kullanıcı denetimi yeni bir örneği yüklenir ve belki olaya abonelik kalır i dont know, bu yüzden Dispose için
this.globalEvents.OnSaveButtonClicked -= (s, e) => SaveData();
yapıştırmak için çalıştık olabileceğini düşündüm() yöntemi başarılı olmaksızın. Bu işi nasıl yapabilirim?
Çok teşekkürler! Lambdas'ın olaylardan kurtulmak için kullanılamayacağını bilmiyordum. Kötü, bana doğru yolu gösterdiğin için teşekkürler:] –