Windows Phone 8에서 프로그래밍하기가 처음입니다. "바인딩"을 연구 중입니다. 슬라이더의 속성 "값"을 바인딩하려고 시도하지만 응용 프로그램을 실행할 때 변경 사항이 표시되지 않습니다. 코드 숨김 클래스에서Windows Phone 8에서 슬라이더의 바인딩 값 속성 없음
public class VMSlider : VMBase {
private int _valor;
public VMSlider() {
_valor = 43;
}
public int Valor {
get { return _valor; }
set {
_valor = value;
RaisePropertyChanged("Valor");
}
}
}
:
이public class VMBase : INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
public VMBase() {}
public void RaisePropertyChanged(string PropertyName) {
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
}
뷰 모델 클래스는 이것이다 :
이<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel>
<Slider Minimum="1" Maximum="100" Value="{Binding Valor}" />
</StackPanel>
</Grid>
ViewModelBase 클래스는 이것이다 :
XAML 코드는 이것이다 내 XAML y는 다음과 같이 작성합니다.
this.DataContext = new ViewModel.VMSlider();
이유를 말해야합니다.
감사합니다.
디버거가 연결된 상태에서 Visual Studio의 출력 창에 바인딩 오류가 표시됩니까? –
"당신은 어떤 변화도 보지 못했다"고 말할 때, 그것은 변하지 않는 것을 무엇을 검사하고 있습니까? Valor를 코드에서 설정하고 슬라이더가 변경되기를 기대합니까? 반대의 경우도 마찬가지입니까? –
또한 VMSlider를 새로 만들 때에 따라 VMSlider의 생성자에서 public setter를 사용하여 _valor를 설정하면 속성 변경 알림이 실행됩니다 (바인딩이 이미 해당 지점에 설정된 경우). –