Как анимировать наборы инструментов сообщества RadialGauge с MVVM? - PullRequest
0 голосов
/ 27 февраля 2019

Я хотел бы анимировать радиальную калибровку Windows Community Toolkit, но, к сожалению, пользовательский интерфейс не обновляется после RaisePropertyChanged.

enter image description here

Здесьмой код:

View

<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;"> 

ViewModel

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);
        }
    });
}

Как видите, radialGauge не работаетсамо обновление.

Есть ли у вас какие-либо идеи, как я мог бы оживить Control?

1 Ответ

0 голосов
/ 28 февраля 2019

Пожалуйста, установите RadialGauge значение привязки с двухсторонней моделью, как показано ниже.

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