2013-02-24 53 views
0

我是新手,在Windows Phone 8编程。我正在学习“绑定”。我尝试绑定Slider的属性“Value”,但是在运行应用程序时,我没有看到任何更改。没有约束价值Windows Phone 8滑块的属性

的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 y写道:

this.DataContext = new ViewModel.VMSlider(); 

我需要说明原因。

谢谢。

+1

在连接调试器的情况下运行时,Visual Studio的“输出”窗口中是否存在绑定错误? – 2013-02-24 20:35:51

+0

当你说“你没有看到任何改变”时,你检查的内容没有改变?你是否从代码中设定了Valor,并希望滑块改变,反之亦然? – 2013-02-24 21:39:19

+0

另外,根据你什么时候新建VMSlider,你可能想在VMSlider的构造函数中使用public setter设置_valor,这样属性更改通知就会触发(如果绑定已经在那个时候设置)。 – 2013-02-24 21:40:52

回答

2

Slider控件的Value属性类型为Double。你的绑定不起作用,因为Valor是一个错误类型的值。您必须执行Value Converterchange Valor to a Double

+0

非常感谢:D – batressc 2013-03-09 03:03:44