带有Caliburn Micro的WPF DataTrigger

问题描述 投票:0回答:1

我无法使用Caliburn.Micro使DataTrigger在我的MVVM上下文中正常工作。我有一个带有ContentControl(EditCardInCollectionViewModel)的视图(CollectionView)。应使用动画将ContentControl的Width转换为零,该动画应由CollectionViewModel中的bool属性(EditPanelIsOpen)触发。

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="0" />
                                </Storyboard>
                            </BeginStoryboard>
                        </DataTrigger.EnterActions>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ContentControl>

没有编译器错误,也没有运行时错误。 UI对属性EditPanelIsOpen的任何NotifyPropertyChangedEvents都没有反应。似乎绑定是错误的,我也尝试了DataContext.EditPanelIsOpen,但它也不起作用。

如果有人可以帮助我解决这个问题,我们将感到非常高兴。

animation mvvm binding caliburn.micro datatrigger
1个回答
0
投票

[Gibt eshierfürtatsächlichkeineLösung? :/

© www.soinside.com 2019 - 2024. All rights reserved.