1

私はこの問題を抱えており、caliburn micro を使用しており、プログレス バーを更新しようとしています。しかし、何も起こっていません。ここでそれについていくつかのスレッドを読みましたが、行き詰まっています。更新されません

私のコードの何が問題なのか分かりますか? 私のxamlはこれです:

<ProgressBar x:Name="PbEstadoConfig" FlowDirection="LeftToRight" Width="200" Height="30" Margin="6,0,572,0">

私のビューモデルには、次のコードがあります。

private double _pbEstadoConfig;
            public double PbEstadoConfig
            {
                get { return _pbEstadoConfig; }
                set
                {
                    _pbEstadoConfig = value;
                    NotifyOfPropertyChange(() => PbEstadoConfig);
                }
            }

     public void Seguinte()
            {
                var t = Task.Factory.StartNew(() =>ActualizaPB("seguinte"));


            }
    protected void ActualizaPB(string value){
     PbEstadoConfig += 20.0;

}
4

2 に答える 2

1

プログレスバーの最大値/最小値が不足している可能性があると思います。

以下は、私が現在取り組んでいるcaliburnマイクロプロジェクトでのマークアップの作業です。カスタム規則を作成する必要はありませんでした。

    <ProgressBar Name="Progress" Maximum="1" Minimum="0" Margin="0,22,0,0" Grid.Row="1" Height="20"  Grid.ColumnSpan="2"></ProgressBar>

そしてバッキングプロパティ:

    public double Progress
    {
        get { return _progress; }
        set
        {
            _progress = value;
            NotifyOfPropertyChange(() => Progress);
        }
    }
于 2012-09-14T05:37:45.097 に答える
1

Caliburn.Microによって提供されるようなWPFMVVMプログラミングの私の経験では、UIスレッドは長時間実行ルーチン中にロックされるため、進行状況バーは同じスレッド上にあるため、長時間実行ルーチン中に更新されません。そのため、私はStephenからのこのページのアドバイスに従い、System.Threadingライブラリとともに彼のProgressReporterクラスを実装しました。

于 2012-10-29T20:23:59.013 に答える