如何使用MVVM设置社区工具包RadialGauge的动画?

如何使用MVVM设置社区工具包RadialGauge的动画?,mvvm,uwp,windows-community-toolkit,Mvvm,Uwp,Windows Community Toolkit,我想为Windows社区工具包的radialgauge制作动画,但不幸的是,在RaiseProperty更改后,UI不会自动刷新 这是我的密码: 查看 <TextBlock Grid.Row="0" Text="{Binding RadialGaugeValue}" /> <controls:RadialGauge x:Name="MyRadialGauge" Grid.Row="01" Value="{Binding RadialGaugeValu

我想为Windows社区工具包的radialgauge制作动画,但不幸的是,在RaiseProperty更改后,UI不会自动刷新

这是我的密码:

查看

<TextBlock Grid.Row="0" Text="{Binding RadialGaugeValue}" />
<controls:RadialGauge 
    x:Name="MyRadialGauge"
    Grid.Row="01"
    Value="{Binding RadialGaugeValue}"
    Minimum="0"
    Maximum="100"
    StepSize="1"
    IsInteractive="False"
    TickSpacing="10"
    TickWidth="0"
    ScaleWidth="4"
    ScalePadding="29"
    ScaleTickWidth="1" 
    MinAngle="245"
    MaxAngle="115"
    Unit="Sparquote"
    NeedleWidth="2"
    NeedleLength="100" 
    MaxHeight="250" 
    Margin="0,20,0,0" 
    NeedleBrush="{ThemeResource SystemColorHighlightBrush}" 
    FocusVisualPrimaryBrush="{x:Null}"
    FocusVisualSecondaryBrush="Green"
    TrailBrush="{ThemeResource SystemColorHotlightBrush}" 
    ValueStringFormat=".&quot;%&quot;"> 

视图模型

private async Task DoSavingRateAnimation(double myValue)
{
    var progress = new Progress<int>(value =>
    {
        RadialGaugeValue = value;
        RaisePropertyChanged("RadialGaugeValue");
    });
    await SavingRateAnimation(progress, myValue);

}

private Task SavingRateAnimation(IProgress<int> progress, double value)
{
    return Task.Run(() =>
    {
        int i = 0;
        while (RadialGaugeValue < value)
        {
            Task.Delay(100).Wait();
            i += 1;
            progress.Report(i);
        }
    });
}
专用异步任务DoSavingRateAnimation(双myValue)
{
变量进度=新进度(值=>
{
RadialGaugeValue=数值;
RaisePropertyChanged(“RadialGaugeValue”);
});
等待储蓄率动画(进度,myValue);
}
私有任务节省率动画(IProgress progress,双值)
{
返回任务。运行(()=>
{
int i=0;
while(RadialGaugeValue<值)
{
Task.Delay(100.Wait();
i+=1;
进度报告(一);
}
});
}
如您所见,radialGauge不会自行更新


你知道我如何设置控件的动画吗?

请使用双向模型设置
RadialGauge
值绑定,如下所示

Value="{Binding RadialGaugeValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

请使用双向模式设置
RadialGauge
值绑定,如下所示

Value="{Binding RadialGaugeValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

您是否尝试过使用双向绑定
Value=“{Binding RadialGaugeValue,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}”
谢谢!就这样。但我不明白为什么,我认为双向绑定是改变UI中的值并将其写回源代码。顺便说一句,我不明白为什么这个问题被否决了。是的,我知道,否决是在这个问题产生后不久。是的,我测试了
Mode=“OneWay”
,但它不起作用。所以你的答案是正确的,我需要
Value=“{Binding RadialGaugeValue,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}”
你试过使用双向绑定
Value=“{Binding RadialGaugeValue,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}”吗!就这样。但我不明白为什么,我认为双向绑定是改变UI中的值并将其写回源代码。顺便说一句,我不明白为什么这个问题被否决了。是的,我知道,否决是在这个问题产生后不久。是的,我测试了
Mode=“OneWay”
,但它不起作用。所以你的答案是正确的,我需要
Value=“{Binding RadialGaugeValue,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}”