У меня есть Аккордеон, который привязан к ObservableCollection.Мне нужно применить обходной путь, чтобы Аккордеон изменил размеры своих дочерних элементов к контенту (т. Е. Если элемент был удален из связанной коллекции, мне нужно, чтобы аккордеон уменьшился, а при добавлении - расширился).
Однако всеОбходной путь, который я нашел, использует объекты AccordionItem.Все они имеют элементы AccordionItem, установленные в XAML, поэтому их accordion.Items являются коллекциями объектов AccordionItem.
Несмотря на то, что я связываюсь с myObject, они помещаются в объект AccordionItem в ItemContainerStyleTemplate.Единственное, что мне нужно, это как-то получить доступ к этому AccordionItem.Если я пытаюсь что-то вроде accordion.Items [0] .GetType (), он возвращает myObject.
Так что вопрос - как мне получить доступ к объекту AccordionItem из привязанного к данным Accordion?
Обходной путь, который я хотел попробовать: (РЕДАКТИРОВАТЬ: он работает так, как мне нужно)
public static void UpdateSize(this AccordionItem item)
{
item.Dispatcher.BeginInvoke(
delegate
{
if (!item.IsLocked && item.IsSelected)
{
item.IsSelected = false;
item.InvokeOnLayoutUpdated(delegate { item.IsSelected = true; });
}
});
}