none
Silverlight: "Тонкий" баг в TreeView при снятии выделения со всех элементов. RRS feed

  • Общие обсуждения

  • Silverlight 3.0, TreeView from Toolkit October 2009.
     
    Задача: Если снять выделение со всех элементов TreeView, то ранее выделенный элемент опять станет выделенным, если окно Silverlight тут же потеряет фокус а потом получит опять.
    Решение: Недостаточно просто снять выделение с элемента TreeView, нужно так же снять с него фокус.
    Вот код, который обходит эту проблему.

     

    public static void UnseslectAllTreeViewItems(TreeView treeView)
    {
        //treeView.SetSelectedContainer(null);
        var selectedContainer = treeView.GetSelectedContainer(); 
        if (selectedContainer != null
        {
            selectedContainer.IsSelected =
    false
        }

     

        // Bug resolving

     

        var focusedElement = FocusManager.GetFocusedElement();

     

        if (focusedElement != null

            && focusedElement == selectedContainer)
        {
            treeView.Focus();
        }
    }

    4 марта 2010 г. 17:06

Все ответы