2015-08-23 7 views
0

В настоящее время я пишу какое-то программное обеспечение для соревнований по прыжкам.Задание формата внутри класса

Я сделал класс, чтобы вставить своих всадников в этот класс и в этом классе, а также переменную для хранения времени наездника. Я использую промежуток времени для этого, так как мне также нужно использовать миллисекунды.

Это не проблема. Однако, когда я связываю свой список с гонщиками в datagridview, значение времени отображается как 00:00:00, в то время как мне нужно будет 00: 00.000

Есть ли способ, который я могу указать outputstring либо в моем классе, либо в моем datagridview?

Я знаю, что могу заполнить datagridview вручную и обойти проблему таким образом, но это не имеет смысла.

Так как я могу решить эту проблему?

Приветствия, Кеннет

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

Возможно, вы могли бы добавить свойство readonly в свой класс, чтобы отображать временной интервал в нужном вам формате, но лучшим вариантом для форматирования является уровень представления, поэтому я бы сделал это в datagridview. Однако, чтобы помочь вам в этом, нам нужно знать платформу, над которой вы работаете (это asp.net, wpf, winforms)? –

ответ

0

Один из способов сделать это было бы создать класс-оболочку вокруг 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); 
} 
} 

Затем замените TimeSpan объект в классе с TimeSpanWrapper, когда связывание произойдет для этого класса, будет вызываться метод ToString() и вернуть строку в нужном вам формате.

+0

Хорошая идея, но ваша строка формата не будет создавать то, что хочет OP. Правильная вещь, которую нужно поставить в 'ToString', будет' return Time.ToString (@ "mm \: ss \ .ffff"); ' –

+0

Thank вы Димитрис за ваш ответ. Это похоже на хорошую идею, но как я могу добавить Timespan к моему классу? Потому что я применяю этот класс к списку. Поэтому, когда я добавляю или изменяю время, мне нужно отредактировать TimeSpanWrapper? – Cainnech

+0

@ScottChamberlain Метод My ToString() был всего лишь примером того, как он может достичь того, чего он хочет, я не был уверен в этом формате и добавил образец –