「WPF」的方式是讓視圖轉換它。您可以使用IValueConverter界面將數據轉換爲您想要顯示的數據。
你需要把你的邏輯放在什麼數字到目前爲止的時間應該是。這是我的猜測。我不知道你怎樣才能將時間轉換回來,而不是整個日期。此外,MarkupExtension不是必需的,它只是一個很好的選擇。有關更多信息,請參閱http://wpftutorial.net/ValueConverters.html。
public class JSONDateToDate : MarkupExtension, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var jSONDate = parameter as string;
if (!string.IsNullOrEmpty(jSONDate))
{
DateTime dt;
if DateTime.TryParse(jSONDate, out dt)
{
return dt;
}
}
// If didn't pass in string or TryParse failed return back empty datetime
return new DateTime();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
// Not needed just nice
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
在XAML中你可以使用它像
<TextBox Name="tbxArrivalTime" Text="{Binding Path=ArrivalTime, StringFormat=" \{0:HH:mm\}". Converter={x:JSONDateToDate } />
只是一個警告的話我沒有測試所有這些代碼,並可能在XAML中的一些小問題,因爲它很難類型沒有實際的佈線。
根據獲取日期字符串而不是數字更新我的答案。您可以在IValueConverter中返回格式化的字符串,也可以返回日期時間。如果您返回日期時間,則使用stringformat將該值格式化爲字符串。如果你有確切的格式很多地方,我會把它放在價值轉換器,否則我會讓我的價值轉換器只是返回一個日期時間,因爲我可能會得到更多的重用。
你怎麼會有DateTime類轉換成1397949540000某種有效的日期和時間? –
對不起,非常有用的一點。應該是「2014-04-20T02:57:00Z」 – ForeverLearning