如何从动态添加和删除的UserControl中查找和删除绑定

时间:2010-09-15 17:29:17

标签: silverlight data-binding

我有一组UserControl,它们共享相同的业务对象(ViewModel),但仅限于此 以不同的方式显示数据。

我通过组合框选择一个活动的UserControl。旧的UserControl我从StackPanel删除并添加新的UserControl。

    var uiElement = thisObject.EditorsContainer.Children.FirstOrDefault();
    if (uiElement != null)
    {
        thisObject.EditorsContainer.Children.Remove(uiElement);
        uiElement.Cast<UserControl>().ClearValue(DataContextProperty);
    }

EditorsContainer是StackPanel

看起来父控件保留对已删除控件的引用,因为当我在活动控件中编辑值时,绑定到binded属性会更新内存中已删除的控件。

1 个答案:

答案 0 :(得分:0)

作为解决方法,我已经实现了具有IsActive属性的IActiveAware接口,当用户控件的逻辑生命周期结束时,该属性为false。在ViewModel的绑定属性上,我检查了这个属性。