C# WPF ProgressBar加载的事件仅触发一次
我使用的是MVVM,我的主窗口具有以下属性绑定:C# WPF ProgressBar加载的事件仅触发一次,c#,wpf,mvvm,C#,Wpf,Mvvm,我使用的是MVVM,我的主窗口具有以下属性绑定: <ContentControl x:Name="MainContentControl" Content="{Binding CurrentPage}" Margin="10,50,10,38"/> 单击按钮后,我将CurrentPage设置为新视图绑定,该绑定上有ProgressCar控件: private void HomeButtonClick(object obj) { CurrentP
<ContentControl x:Name="MainContentControl" Content="{Binding CurrentPage}" Margin="10,50,10,38"/>
单击按钮后,我将CurrentPage设置为新视图绑定,该绑定上有ProgressCar控件:
private void HomeButtonClick(object obj)
{
CurrentPage = new HomeViewModel();
}
<ProgressBar Cursor="Hand"
Name="EffortProgressBar" Value="{Binding Home.Effort, Mode=TwoWay}" Foreground="{Binding RelativeSource={RelativeSource Mode=Self},
Path=Value, Converter={StaticResource ProgressForegroundConverter}}"
Height="12" Canvas.Left="30" Canvas.Top="75" Width="25" RenderTransformOrigin="0.5,0.5">
<ProgressBar.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="-1"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</ProgressBar.RenderTransform>
<ProgressBar.Triggers>
<EventTrigger RoutedEvent="ProgressBar.Loaded">
<BeginStoryboard>
<Storyboard >
<DoubleAnimation Storyboard.TargetProperty="Value" From="0" To="{Binding Home.Effort, Mode=TwoWay}" Duration="0:0:01"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ProgressBar.Triggers>
</ProgressBar>
当我单击Home按钮加载页面时,ProgressBar会正确设置动画,但当我再次单击该按钮时,ProgressBar不会设置动画
是否有其他活动可供订阅以实现此目的?或者这是不可能的?当您将ContentControl的Content属性绑定到同一类型的新值时,不会重新加载数据模板
最简单的解决方法可能是在将CurrentPage属性设置回HomeViewModel的新实例之前,通过将其设置为null来清除内容。要使其正常工作,您需要返回调用者并让调度程序在重置CurrentPage属性之前更新UI:
private async void HomeButtonClick(object obj)
{
if (CurrentPage != null && CurrentPage is HomeViewModel)
{
CurrentPage = null;
await Task.Delay(1);
}
CurrentPage = new HomeViewModel();
}
这将强制重新加载视图。由于视图已加载,因此未设置动画。尝试用任何其他事件替换为什么不在按钮单击事件上触发动画?那毕竟是你真正想要的,不是吗?你的问题不是很清楚。它缺少详细信息,这些信息可以帮助我们了解您尝试过的内容以及您遇到的具体问题。@PeterDuniho我无法通过单击按钮来执行此操作,因为我无法访问ViewModel上的控件。视图模型与此有何关系?只需将事件触发器放在XAML中。如果您仍然需要帮助,请解决您的问题。提供一个好的例子,并准确地解释你需要什么。请参阅,尤其是该页底部链接的文章。