SpacePurr
@SpacePurr
c#, wpf

Как изменить свойство родительского элемента с помощью триггера?

Здравствуйте.

Есть элемент Expander с вложенным PopUp(чтобы поверх других элементов был), внутри PopUp находится StackPanel с тремя RadioButton, объединённых одним GroupName.
Опущу некоторые свойства в коде, чтобы ближе к сути было:
<Expander Name="MyExpander" ... IsExpanded="False" >
     <PopUp ... StaysOpen="False" IsOpen="{Binding ElementName=MyExpander, Path=IsExpanded}" >
          <StackPanel>
               <RadioButton GroupName="Group" Name="First"/>
               <RadioButton GroupName="Group" Name="Second"/>
               <RadioButton GroupName="Group" Name="Third"/>
          </StackPanel>
     </PopUp>
</Expander>


Свойство IsOpen элемента PopUp привязано к свойству IsExpanded элемента Expander, то есть при нажатии на стрелку Expander у нас открывается PopUp, а при нажатии в свободное место, PopUp закрывается и стрелка Expander'а меняет вид на закрытый.

Мне нужно, чтобы при нажатии на один из RadioButton, мой Expander также закрывался.

Я пытался реализовать это через Trigger IsPressed у RadioButton, но не смог подцепиться к свойству элемента MyExpander, потому что Property не даёт использовать Binding.

Я знаю что могу это сделать в ViewModel, привязав одно свойство и к IsExpanded и к IsOpen и менять его в Command каждого RadioButton, но интересно, возможно ли это реализовать только в xaml.

Спасибо.
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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