WPF - Как получить только один расширитель, расширенный в любой момент

У меня есть StackPanel с группой расширителей в, как я устанавливаю его так, чтобы только расширитель был расширен в любой момент?

Удачи

AW

8
задан AwkwardCoder 17 December 2009 в 15:54
поделиться

2 ответа

Я действительно не хотел делать это так, поскольку для этого требовалось поместить код (C #) в класс позади файла для окна (я пытаюсь полностью избежать этого, используя ViewModels и т. Д.).

В идеале я бы описал это в XAML.

Я подключил каждое событие Expanded Expanded, которое меня интересовало, и сделал следующее:

    private void HandleExpanderExpanded(object sender, RoutedEventArgs e)
    {
        ExpandExculsively(sender as Expander);
    }

    private void ExpandExculsively(Expander expander)
    {
        foreach (var child in findPanel.Children)
        {
            if (child is Expander && child != expander)
                ((Expander)child).IsExpanded = false;
        }
    }

Cheers

AWC

5
ответ дан 5 December 2019 в 22:19
поделиться

Вы можете добавить свойство зависимости, значением которого является «расширяемый расширитель», а затем вы можете привязать «расширенное» свойство к выражению «theExpandedProperty == this», используя ваше любимое выражение. техника привязки (преобразователь типов и т. д.).

1
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: