#wpf #viewmodel #datatrigger
#wpf #viewmodel #datatrigger
Вопрос:
Я пытаюсь запустить триггер при изменении свойства в моей ViewModel. Кажется, я не могу заставить триггер сработать, что бы я ни пытался. Мой XAML выглядит следующим образом:
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="Padding" Value="0 1" />
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsExpanding}" Value="True">
<Setter Property="Control.Template" Value="{StaticResource ResourceKey=loadingTreeViewItem}" />
</DataTrigger >
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
Привязки IsExpanded и IsSelected работают нормально, однако я не могу заставить DataTrigger запускаться, когда IsExpanding имеет значение true. Эти свойства находятся в одной и той же ViewModel. Я пытался добавлять различные варианты для RelativeSource, но мне не повезло. Приветствуется любая обратная связь.
Ответ №1:
Оказывается, триггер работал. Проблема заключалась в том, что свойство IsExpanding и вызов для получения данных для TreeView выполнялись в потоке пользовательского интерфейса. Я обработал вызов, чтобы получить данные, и все работает, как ожидалось