【问题标题】:Silverlight MVVM Behavior do not work when element become hidden当元素被隐藏时,Silverlight MVVM 行为不起作用
【发布时间】:2013-06-18 12:19:06
【问题描述】:

我有列表框项目的行为类。

public class DragAndDropBehavior : Behavior<AllocationItem>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        AssociatedObject.StartDrag += OnStartDrag;
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
        Cleanup(true);
    }
    // Some drag logic.
}

在此行为中,我在图表上移动项目预览并在需要时滚动此图表。当我滚动此图表时,有一刻我的拖动元素从视图中消失了 - 它超出了视图范围。在这一刻,所有处理程序都不会调用。有什么建议吗?

我有一些更新。当我的元素隐藏时触发OnDetaching() 方法和所有拖动删除的处理程序。那么,问题 chanches - 如何在元素隐藏时忽略 OnDetaching()?

【问题讨论】:

    标签: c# .net silverlight mvvm behavior


    【解决方案1】:

    我解决了这个问题。 我的项目放置在自定义面板(图表)上,并且此自定义面板已覆盖 MeasureOverride(Size size) 方法,因此所有项目更新和不可见项目从视图 => OnDetaching() 行为触发方法中处理。 我通过在我的自定义面板中添加拖动标志来解决它,如果我需要处理不可见的元素,我可以通过这个标志值来解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 2011-12-24
      • 2018-04-02
      • 2023-02-23
      • 2015-10-12
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多