Tôi có trong ViewModel một sự kiện.Sự kiện trong ViewModel với System.Windows.Interactivity.EventTrigger, có tham chiếu yếu không?
public class MyViewModel:ViewModelBase
{
...
public event EventHandler SomethingChanged;
private void FireEvent()
{
if (SomethingChanged != null)
SomethingChanged(this, EventArgs.Empty);
}
...
}
trong chế độ xem của mình, tôi đã sử dụng EventTrigger để nghe Sự kiện để gọi hành động.
<i:Interaction.Triggers>
<i:EventTrigger EventName="SomethingChanged" SourceObject="{Binding}">
<i:SomeAction/>
</i:EventTrigger>
</i:Interaction.Triggers>
Nó hoạt động hoàn toàn tốt. Tuy nhiên tôi tò mò nếu có khả năng rò rỉ bộ nhớ? Khi Chế độ xem của tôi được tạo theo yêu cầu, có nghĩa là điều khiển được thêm vào và xóa khỏi cây Visual dựa trên người dùng. Đối tượng nguồn (ViewModel) có thời lượng lâu hơn trình nghe (View). Do đó, bằng cách sử dụng mã trên, sự kiện sẽ vẫn có tham chiếu mạnh mẽ đến trình lắng nghe đã xóa (Chế độ xem) không?