2

スライダーの値を制御する TwoWay バインディングがあります。

<Slider Orientation="Vertical" Height="200" Value="{Binding Path=MapScale, Mode=TwoWay}" Maximum="{Binding MaxScale}" Minimum="{Binding MinScale}" StepFrequency="0.1" />

バインディングは DependencyProperty として ViewModel にあります。

    public static readonly DependencyProperty MapScaleProperty =
         DependencyProperty.Register("MapScale", typeof(Double?), typeof(MappingPageViewModel), new PropertyMetadata(0.0));

    public Double? MapScale
    {
        get { return GetValue(MapScaleProperty) as Double?; }
        set { SetValue(MapScaleProperty, value); OnPropertyChanged("MapScale"); }
    }

コードが現在のように、MapScale を更新するとスライダーが適切に更新されます (例: MapScale += .1)。しかし、OnPropertyChangedメソッドを削除すると(すでに呼び出している印象を受けていましたSetValue)、スライダーは正しく更新されません。

私は何を逃したのですか?

4

1 に答える 1