2016-09-21 44 views
0

我有一個DatePicker視圖綁定到我的ViewModel中的DateTime屬性。但是,日期值始終顯示爲空,即使我選擇的值不是默認值。任何人都可以使用DatePicker獲得成功?如果是這樣,我錯了什麼?XAML MVVM DatePicker - 如何獲取數據?

相關代碼:

查看:

<DatePicker x:Name="startDateUpdatePick" HorizontalAlignment="Left" Height="23" VerticalAlignment="Top" Width="120" Margin="1.5" 
    Text="{Binding SelectedProjectData.ProjectStartDate, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}"/> 

視圖模型:

public PSViewModel() 
    { 
     SelectedProjectData = new Project(); 
    } 

型號:

public class Project : INotifyPropertyChanged 
{ 
    private DateTime _projectStartDate; 

    public DateTime ProjectStartDate 
    { 
     get { return _projectStartDate; } 
     set 
     { 
      _projectStartDate = value; 
      RaisePropertyChanged(); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    private void RaisePropertyChanged([CallerMemberName] string caller = null) 
    { 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(caller)); 
    } 
} 

編輯:XAML被綁定到一個非空的日期時間,但我有其他r datepickers在綁定到可空DateTime的同一設置中,並且它們也不工作。

+1

什麼是DatePicker的DataContext?你的ViewModel甚至不會編譯,所以誰知道那裏實際發生了什麼。項目看起來正確。 – Will

+0

另外,抓住你一個Snoop的副本。您可以在運行時輕鬆調查綁定錯誤。 – Will

+0

是SelectedProjectData的一個公共屬性?您的視圖的DataContext是否設置爲PSViewModel的實例? – plast1k

回答

3

屬性是SelectedDate,而不是Text

當我是一個飢腸轆轆的小夥子,在帕洛阿爾託的無法無天,骯髒,迷宮般的後巷里長大,無家可歸和野性,我曾遇到一個古老的垂死的獨眼乞丐。他在鐵,爪狀捆住我單薄的小胳膊,把我接近,並傳授給我的一切塵世智慧的根與他最後的,刺耳的口氣:

Read... the... documentation...

他像馬蒂·費爾德曼。

+1

公平點。謝謝你,埃德。儘管如此,我希望你能看到我的困惑點,即使我曾經是文檔的一名勤奮的學生......「文本:獲取由DatePicker顯示的文本,或設置選定的日期。」和...「SelectedDate:獲取或設置當前選擇的日期。」他們非常接近,我希望我能避免這種鞭。。 :) 謝謝您的幫助。 –

+0

@DocHoss是的,這絕對不是最清楚的事情。我的女朋友說「文件很爛」 –

+0

聽起來像一個聰明的女人。再次感謝,埃德。 –