2011-11-26 61 views
2

我在WPF畫布上繪製了流程圖樣式的應用程序。 (基本上與線連接的盒子)。這些盒子被連接到'模型'上的各種事件。我需要能夠清除畫布,而不會破壞模型。 我所做的是從Canvas'Children集合中刪除所有的盒子等。這工作正常視覺,但控制似乎生活在記憶中某處的某處。當我稍後在模型上觸發事件時,控件會使我的應用程序崩潰。 (現在看不見的盒子'期望'是一個畫布的孩子)。 我應該如何指示不再需要的控件?我希望它們被銷燬,不會對事件和綁定做出響應。綁定到模型防止WPF處置它們?將他們的Datacontext設置爲空幫助?傑夫,乾杯。從畫布中刪除的WPF對象對事件作出響應的響應

回答

2

聽起來像你可能需要使用這些框來實現IDisposable並在刪除它們時調用Dispose。在dispose方法中,你應該解除你的事件監聽器。或者,如果您打算再次使用方框,則可能需要將某些方法公開給RemoveListeners(),然後再將方法公開給AttachListeners(),以便當您希望它回到視圖中時。

public void Dispose() 
    { 
     model.MyEvent -= LocalListener; 
    } 
+0

乾杯!,這似乎工作。 – Jeff