スライダーの値を制御する 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
)、スライダーは正しく更新されません。
私は何を逃したのですか?