2013-02-24 51 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