我创建了一个类来表示一个只有一小时和几分钟的时间Time
。我重载了该类的ToString()
方法。我在DataGrid中显示带有Time
属性的类,使用DataGridTextColumn
来显示Time
。只是看着作品篦,但我无法编辑它。我在时间类中添加了一个构造函数,它接受一个字符串,没有帮助。为了实现这一目标,我需要实施什么?
课程时间:
public class Time
{
public Time() { }
/// <summary>
/// the hour
/// </summary>
public int Hour
{
get;
set;
}
/// <summary>
/// the minuets
/// </summary>
public int Minutes
{
get;
set;
}
/// <summary>
/// the time in format hh:mm
/// </summary>
public string time
{
get { return String.Format("{0:00}:{1:00}", Hour, Minutes); }
set
{
string[] spl = value.Split(':');
Hour = Int32.Parse(spl[0]);
Minutes = Int32.Parse(spl[1]);
}
}
public override string ToString()
{
return time;
}
}
还有比较运算符,但我省略了它们。 (我认为它们不重要)。
答案 0 :(得分:0)
我看起来您需要使用CellStyle
格式而不是覆盖ToString()
。但是,如果你仍想重新发明轮子,请在Value
中添加属性Time
并绑定到它:
public class Time
{
public Time() { }
/// <summary>
/// the hour
/// </summary>
public int Hour
{
get;
set;
}
/// <summary>
/// the minuets
/// </summary>
public int Minutes
{
get;
set;
}
/// <summary>
/// the time in format hh:mm
/// </summary>
public string Value
{
get { return String.Format("{0:00}:{1:00}", Hour, Minutes); }
set
{
string[] spl = value.Split(':');
Hour = Int32.Parse(spl[0]);
Minutes = Int32.Parse(spl[1]);
}
}
}
并且绑定:
Text={Binding YourTimeProperty.Value, Mode=TwoWay}