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();
}
}
Комментарии
Отправить комментарий