我是Windows Phone 8编程的新手。我正在研究“The Binding”。我尝试绑定Slider的属性“Value”,但是在运行应用程序时我没有看到任何变化。
XAML代码是这样的:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel>
<Slider Minimum="1" Maximum="100" Value="{Binding Valor}" />
</StackPanel>
</Grid>
ViewModelBase类是这样的:
public class VMBase : INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
public VMBase() {}
public void RaisePropertyChanged(string PropertyName) {
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
}
ViewModel类是这样的:
public class VMSlider : VMBase {
private int _valor;
public VMSlider() {
_valor = 43;
}
public int Valor {
get { return _valor; }
set {
_valor = value;
RaisePropertyChanged("Valor");
}
}
}
在我的XAML的代码隐藏类中,写下这个:
this.DataContext = new ViewModel.VMSlider();
我需要说明原因。
谢谢。
答案 0 :(得分:2)
Slider控件上的Value属性是Double类型。你的Binding不起作用,因为Valor是错误类型的值。
您必须实施Value Converter或change Valor to a Double
。