我无法使用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,但它也不起作用。
如果有人可以帮助我解决这个问题,我们将感到非常高兴。
[Gibt eshierfürtatsächlichkeineLösung? :/