2016-04-03 17 views
0

概述: 我已將Timepicker控件添加到我的用戶界面,並將Time屬性綁定到關聯的ViewModel上的DateTime屬性。如何調試setter不會觸發Timepicker屬性?

但是,當我調試解決方案時,setter不會被調用屬性SelectedParkDuration

爲了進一步調試,我檢查了UI的數據上下文。數據上下文設置正確,並調用Timepicker的getter。

問: 有誰知道爲什麼當我選擇在運行時的時間選擇器的值設置器沒有得到叫什麼名字?

時間選擇器控件定義:

    <TimePicker Grid.Row="2" 
        Grid.Column="1" 
        Width="270" 
        Height="100" 
        HorizontalAlignment="Center" 
        VerticalAlignment="Bottom" 
        Header="Parking Duration" 
        Time="{Binding SelectedParkDuration}" 
        /> 

時間選擇屬性 - 在用戶界面中的視圖模型定義SelectedParkDuration:

private DateTime _selectedParkDuration; 
    public DateTime SelectedParkDuration 
    { 
     get 
     { 
      return this._selectedParkDuration; 
     } 

     set 
     { 
      if (_selectedParkDuration != value) 
      { 
       _selectedParkDuration = value; 
       RaisePropertyChanged("SelectedParkDuration"); 
      } 
     } 
    } 
+2

您的結合模式應該是雙向 –

回答

1

解決方案是指定雙向綁定,@Ken塔克建議。此外,還需要在屬性的類型爲類型的時間跨度:TimePicker的

private TimeSpan? _selectedParkDuration; 
    public TimeSpan? SelectedParkDuration 
    { 
     get 
     { 
      return this._selectedParkDuration; 
     } 

     set 
     { 
      if (_selectedParkDuration != value) 
      { 
       _selectedParkDuration = value; 
       RaisePropertyChanged("SelectedParkDuration"); 
      } 
     } 
    } 

XAML中定義:

<TimePicker Grid.Row="2" 
         Grid.Column="1" 
         Width="270" 
         Height="100" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Bottom" 
         Header="Parking Duration" 
         Time="{Binding SelectedParkDuration, 
             Mode=TwoWay}" />