WPF DataTrigger с Caliburn Micro - PullRequest
       46

WPF DataTrigger с Caliburn Micro

0 голосов
/ 30 марта 2020

У меня проблемы с настройкой DataTrigger для корректной работы в контексте MVVM с использованием Caliburn.Micro. У меня есть представление (CollectionView) с ContentControl (EditCardInCollectionViewModel). Ширина ContentControl должна быть преобразована в ноль с помощью анимации, которая должна запускаться свойством bool (EditPanelIsOpen) в CollectionViewModel.

CollectionView:

<UserControl x:Class="Tools.Views.CollectionView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:cal="http://www.caliburnproject.org"
             xmlns:local="clr-namespace:Tools.Views"
             xmlns:controls="clr-namespace:Tools.Views"
             mc:Ignorable="d">
<Grid>
    <DockPanel>
        <ContentControl x:Name="EditCardInCollectionViewModel" Width="0">
            <Style TargetType="ContentControl">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding EditPanelIsOpen}" Value="False">
                        <DataTrigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.Target="{x:Reference EditCardInCollectionViewModel}" Storyboard.TargetProperty="Width" Duration="0:0:0.4" To="400" />
                                </Storyboard>
                            </BeginStoryboard>
                        </DataTrigger.EnterActions>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ContentControl>

Нет ошибок компилятора ни каких ошибок во время выполнения. Пользовательский интерфейс не реагирует ни на какие NotifyPropertyChangedEvents свойства EditPanelIsOpen. Кажется, что привязка неверна, я также попробовал DataContext.EditPanelIsOpen, но он тоже не работает.

Был бы рад, если бы кто-то мог помочь мне разобраться в этом.

...