Windows Phone 8中没有Slider的绑定值属性

时间:2013-02-24 18:48:02

标签: c# silverlight windows-phone-8

我是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();

我需要说明原因。

谢谢。

1 个答案:

答案 0 :(得分:2)

Slider控件上的Value属性是Double类型。你的Binding不起作用,因为Valor是错误类型的值。

您必须实施Value Converterchange Valor to a Double