में ईवेंट ऑग्रेग्रेटर ईवेंट सदस्यता छोड़ें मैं PRISM और MVVM के साथ WPF का उपयोग शुरू करता हूं। मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि मुझे व्यूमोडेल में सब्सक्राइब किए गए इवेंटएग्रेगेटर ईवेंट की सदस्यता समाप्त करने के लिए एक अच्छी जगह/सर्वोत्तम अभ्यास नहीं मिल रहा है। निम्नलिखित समाधान - विनाशक में सदस्यता छोड़ना - बहुत देर हो चुकी है। यह सिर्फ अगले कचरा संग्रह के साथ चल रहा है।व्यूमोडल्स
public class ViewModel : ViewModelBase
{
public ViewModel()
{
var eventAggregator = ServiceLocator.Current.GetInstance<IEventAggregator>();
eventAggregator.GetEvent<SeriesSelectionChangedEvent>().Subscribe(OnSeriesSelectionChanged);
}
~ViewModel()
{
var eventAggregator = ServiceLocator.Current.GetInstance<IEventAggregator>();
eventAggregator.GetEvent<SeriesSelectionChangedEvent>().Unsubscribe(OnSeriesSelectionChanged);
}
void OnSeriesSelectionChanged(SeriesSelectionChangedEventArgs e)
{
}
}
घटनाओं के लिए पंजीकरण करते समय आप मजबूत संदर्भ भी चुन सकते हैं। –
यह मेरे ऊपर है - यही मुझे संदेह है। मुझे लगता है कि आपका दूसरा सुझाव - दृश्य के माध्यम से एक आदेश को ट्रिगर करना - मेरी ज़रूरतों के अनुरूप है। बहुत बढ़िया जवाब! –
@ Daniel: ओह, मैं इसके बारे में भूल गया। यह बहुत समय पहले था, जब मैंने अपनी परियोजनाओं में आखिरी कार्यक्रम जोड़ा :) :) –