Я работаю над программой в WPF впервые. У меня есть ListView в режиме GridView, отображающий данные из связанного набора данных (который извлекается из базы данных).
В моей базе данных "дата рождения" не является обязательным полем. Таким образом, для любой записи без dob было установлено значение DateTime.MinValue
. В каждую из этих дат минимальной стоимости дата отображается в ячейке как 01.010001. Я пытаюсь найти способ отформатировать ячейку так, чтобы DateTime.MinValue
не показывался, или заменить каждый MinValue
на ""
.
Я думал о том, чтобы либо использовать событие «Loaded» текстового блока, в котором находится дата, и заменить каждый экземпляр «01/01/0001», либо перебрать набор данных перед отправкой его в GridView и удалить / заменить их. там. Мне не повезло понять, как это сделать.
Мой код xaml для GridView:
<Grid>
<ListView x:Name="resultsListView" GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler" Margin="0,54,0,28" ItemsSource="{Binding Path=Table}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=LastName}"
Header="Last Name"
Width="150"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}"
Header="First Name"
Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=MiddleName}"
Header="Middle Name"
Width="100"/>
<GridViewColumn Header="Date of Birth" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="Justify" Text="{Binding Path=DateOfBirth, StringFormat='{}{0:MM/dd/yyyy}'}" Loaded="TextBlock_Loaded" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Grid>
Код для набора данных:
private void FillListView(DataSet ds)
{
if (resultsListView.Items.Count != 0)
{
resultsListView.Items.Clear();
}
resultsListView.DataContext = ds.Tables[0].DefaultView;
}
Любой совет о том, как показывать пробелы для DateTime.MinValue
в моем GridView, будет очень полезен!