2015-08-23 13 views
0

我目前正在編寫一些跳躍比賽的軟件。指定一個類內部的格式

我已經做了一個班,讓我的車手進入,並且在這個班裏,這也是一個變量來存儲騎手的時間。我正在使用這個時間段,因爲我也需要使用毫秒。

到目前爲止這不是問題。 但是,當我鏈接我的列表與騎手到datagridview,時間的值被表示爲00:00:00而我需要它是00:00.000

有沒有一種方法,我可以指定在我的課或在我的datagridview輸出字符串?

我知道我可以手動填寫datagridview並繞過這個問題,但這並沒有什麼意義。

那麼我該如何解決這個問題呢?

乾杯, 肯尼思做這將是創建一個包裝類各地TimeSpan這樣

public class TimeSpanWrapper 
{ 

public TimeSpan Time{get;set;} 

public override string ToString() 
{ 
return string.Format("{0}:{1}.{2}",Time.Hour,Time.Minute,Time.Second); 
} 
} 

然後用TimeSpanWrapper替換TimeSpan對象類

public class RidersClass 
    { 
     public string firstnameRider { get; set; } 
     public string lastnameRider { get; set; } 
     public string nameHorse { get; set; } 
     public string Stable { get; set; } 
     public TimeSpan timeRound { get; set; } 
     public int penalty { get; set; }   
    } 

Riders = new List<RidersClass>(); 

private void showList() 
     { 
      var source = new BindingSource(); 
      source.DataSource = Riders; 
      grdRiders.DataSource = source; 
     } 
+0

你可能會添加一個只讀屬性到你的類中以顯示你想要的格式的時間範圍,但格式化的更好的地方是表示層,所以我會在datagridview中做到這一點。但是,爲了幫助您做到這一點,我們需要知道您正在使用的平臺(是asp.net,wpf,winforms)嗎? –

回答

0

的一種方法,當此類綁定發生時,ToString()方法將被調用,並以您喜歡的格式返回字符串。

+0

好主意,但是你的格式字符串不會產生OP想要的東西。放在ToString中的正確的東西是返回Time.ToString(@「mm \:ss \ .ffff」);' –

+0

Thank你Dimitris的回覆。這確實看起來不錯,但是我怎樣才能將Timespan添加到我的課程中?因爲我正在將這個類應用到列表中。所以當我添加或修改時間時,我必須編輯TimeSpanWrapper? – Cainnech

+0

@ScottChamberlain My ToString()方法只是他如何實現他想要的一個例子,我不確定格式並添加了一個樣本 –