2016-12-29 60 views

回答

0

TimePicker.Time屬性的類型是TimeSpan,所以爲了綁定到TimePicker的time屬性,我們需要將datetime轉換爲timespan。

public class MainViewModel : ObservableObject 
{ 

    //Initialize someDateTime with a default value 
    private DateTime someDateTime = DateTime.Parse("07/21/1969 2:56AM"); 

    public DateTime SomeDateTime 
    { 
    get { return someDateTime; } 
    set { Set(ref someDateTime,value); } 
    } 

}} 


public class DateTimeToTimeSpanConverter : IValueConverter 
{ 
public object Convert(object value, Type targetType, object parameter, string language) 
{ 
    try 
    { 
     DateTime dt = (DateTime)value;    
     TimeSpan? ts = DateTimeConverter.DateTimeToTimeSpan(dt); 
     return ts.GetValueOrDefault(TimeSpan.MinValue); 
    } 
    catch (Exception ex) 
    { 
     System.Diagnostics.Debug.WriteLine(ex.Message); 
     return TimeSpan.MinValue; 
    } 
} 
} 

MainPage.xaml中:

<Page ...> 

    <Page.DataContext> 
    <ViewModels:MainViewModel/> 
    </Page.DataContext> 



<Page.Resources> 
    <Converters:DateTimeToTimeSpanConverter 
    x:Key="DateTimeToTimeSpanConverter"/> 
</Page.Resources> 

    <!-- ... --> 
    <TimePicker 
    Header="My time" 
    Margin="10" FontSize="24" 
    Time="{Binding SomeDateTimeTime, Converter={StaticResource DateTimeToTimeSpanConverter}, Mode=TwoWay}" /> 
    <!-- ... --> 

</Page> 
+0

不,我再次收到異常。我需要將字符串轉換爲TimeSpan格式。可以給我建議。 – Awaneesh

+0

我的時間選擇器只支持TimeSpan格式。 – Awaneesh

+0

你有什麼異常? –

相關問題