0

我是 Windows Phone 8 编程新手。我正在学习“绑定”。我尝试绑定 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();

我需要说一下为什么。

谢谢你。

4

1 回答 1

2

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

您必须实现一个值转换器change Valor to a Double.

于 2013-02-25T09:26:39.650 回答