Как связать со свойством контекста данных SelectedValue в WPF? - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть список, в котором отображаются некоторые элементы модели. Я хотел бы скрыть некоторые элементы управления под списком в зависимости от логического значения элемента модели, связанного с выбранным элементом списка.

Я попробовал следующее, но это не сработало:

1) установить ListBox SelectedValuePath = "MyModelBooleanProperty"

2) добавить триггер данных к элементу управления, который я хочу скрыть следующим образом

<DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="False">
   <Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="True">
   <Setter Property="Visibility" Value="Visible"></Setter>
</DataTrigger>

1 Ответ

0 голосов
/ 29 апреля 2018

Я использовал это, и это сработало. Также убедитесь, что вы явно не установили Visibility TextBlock, который переопределяет то, что делает Style.

<ListBox
     x:Name="FolderList"
     ItemsSource="{Binding Source={StaticResource ViewModel}, Path=List}"
     SelectedValuePath="SomeBooleanProperty">
     <ListBox.ItemTemplate>
         <DataTemplate>
             <TextBlock Text="{Binding SomeStringProperty}" />
         </DataTemplate>
     </ListBox.ItemTemplate>
 </ListBox>

 <TextBlock>
     <TextBlock.Style>
         <Style TargetType="TextBlock">
             <Setter Property="Visibility" Value="Visible" />
             <Style.Triggers>
                 <DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="False">
                     <Setter Property="Visibility" Value="Collapsed" />
                 </DataTrigger>
                 <DataTrigger Binding="{Binding ElementName=FolderList, Path=SelectedValue}" Value="True">
                     <Setter Property="Visibility" Value="Visible" />
                 </DataTrigger>
             </Style.Triggers>
         </Style>
     </TextBlock.Style>
     My Text Block
 </TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...