这是运行的方法,它在程序启动时触发,当单击按钮刷新列表时(它从SQL服务器数据库中提取其信息,运行时间日志程序的其他人可以添加时间)这只是所有时间日志的主列表)
private void viewPeopleTimLog()
{
string message;
//Datagrid cleared out
dtgPeopleTimLog.ItemsSource = null;
//List of TimeLog Objects.
//It passes back out a blank string if nothing goes wrong and passes
//back out the out the error message if something goes wrong
PeopleTimeLogList logList = new PeopleTimeLogList(out message);
if(string.IsNullOrEmpty(message)) //Everything is fine
{
dtgPeopleTimLog.ItemsSource = logList; //Line it fails on
}
else
{
//Code to print the exception message here
}
}
TimeLog对象包含 1.人的身份#存储为int。 2.该人的姓名存储为字符串。 3.该人对完成的工作的评论存储为字符串。 4.记录时间的日期存储为DateTime。 5.存储为双精度的人记录的时间量。
这是datagrid的xaml代码
<DataGrid x:Name="dtgPeopleTimLog" HorizontalAlignment="Left"
Margin="10,45,0,0" VerticalAlignment="Top" Height="404"
Width="1000" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Date Logged" Binding="{Binding DateLogged}"/>
<DataGridTextColumn Header="ID #" Binding="{Binding IDNumber}"/>
<DataGridTextColumn Header="Name" Binding="{Binding PersonName}"/>
<DataGridTextColumn Header="Time Logged" Binding="{Binding TimeLogged}"/>
<DataGridTextColumn Header="Comment" Binding="{Binding Comment}">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.Width" Value="540"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
我在这里遗漏了什么吗?我看了看,看起来没有任何东西符合我的情况。我将所有列都从对象绑定到datagrid,我在获取TimeLog对象列表之前清除了itemssource,并将其作为itemssource放置。感谢任何帮助!
答案 0 :(得分:0)
好的,所以我根据提出的意见找出答案。答案是
private void viewPeopleTimLog()
{
string message;
dtgPeopleTimLog.ItemsSource = null;
PeopleTimeLogList logList = new PeopleTimeLogList(out message);
if(string.IsNullOrEmpty(message)) //Everything is fine
{
dtgPeopleTimLog.ItemsSource = logList;
}
else
{
//Code to print the exception message here
}
}
和XAML
<DataGrid x:Name="dtgPeopleTimLog" HorizontalAlignment="Left"
Margin="10,45,0,0" VerticalAlignment="Top" Height="404"
Width="1000" />
这显然是明确定义的列的一个问题,因此我删除了明确定义的列并且它有效。我不需要特殊的标题信息,所以这可行。