Тэги

Silverlight (36) WPF (10) IIS (7) Visual Studio (7) SharePoint (6) .Net Framework (5) ODP.NET (5) ASP.NET (4) C# (4) common (4) Network Settings (3) JavaScript (2) MS Office (2) Resharper (2) WCF (2) WEB (2) XPath (2) XSLT (2) ADO.NET (1) APEX (1) CMD (1) CSS (1) EF (1) HTML (1) Hardware bugs (1) Java (1) MS SQL (1) Oracle (1) PDF (1) Version Control (1) XAML (1)

четверг, 4 марта 2010 г.

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

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();
    }
}

Комментариев нет:

Отправить комментарий