当数据表中的日期时间为 01/01/1900 时,在 ListView 中显示空字段

英红狼

我有DataTable dtLeaves5 列,其中 2 列是DateTime StartDate, EndDate列,可能有一个 minDate 值01/01/1900,而 DataTable 通过 a 显示ListView LeavesListView,ListView 是否可以将日期显示01/01/1900为空字段而不是实际值?DataTable 是从 SQL Server 填充的。

XAML

<ListView x:Name="LeavesListView" Margin="10,10,13,10" Background="White" Opacity="0.8" Grid.Row="2" FontFamily="Times New Roman" FontSize="14" FlowDirection="RightToLeft" SelectionChanged="LeavesListView_SelectionChanged" MouseDoubleClick="LeavesListView_MouseDoubleClick">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="تاريخ البدء" Width="120" TextBlock.TextAlignment="Center" DisplayMemberBinding="{Binding StartDate, StringFormat=yyyy/MM/dd}" FrameworkElement.FlowDirection="RightToLeft"/>
            <GridViewColumn Header="تاريخ الأنتهاء" Width="120" TextBlock.TextAlignment="Center" DisplayMemberBinding="{Binding EndDate, StringFormat=yyyy/MM/dd}" FrameworkElement.FlowDirection="RightToLeft" />
            <GridViewColumn Header="نوع الاجازة" Width="100" FrameworkElement.FlowDirection="RightToLeft">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding LeaveType}"  Foreground="Red" />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

将数据加载到 ListView 的代码

public MainWindow()
{
    InitializeComponent();
    Variables.DtLeaves = DataLoad.LoadData("EmpLeaves", "");
}
private void LoadLeaveData()
{
    try
    {
        if (EmployeesListView.SelectedIndex < 0) return;
        Variables.DtLeaves.DefaultView.RowFilter = string.Format("EmpID = '{0}'",
        Variables.Dt.Rows[EmployeesListView.SelectedIndex][0]);
        Variables.DtLeaves.DefaultView.Sort = " StartDate ASC";
        LeavesListView.ItemsSource = Variables.DtLeaves.DefaultView;
        LeaveData.DataContext = LeavesListView.SelectedItem;
        LeavesListView.SelectedIndex = 0;
        LeavesListView.Items.Refresh();
    }
    catch (Exception ex)
    {
        MessageBox.Show(string.Format("Error({0}): {1} ", ex.Message, ex.HResult), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}

和 DataLoad.C​​s 中的代码

public static DataTable LoadData(string tableName, string filterString)
{
    using (var con = new SqlConnection(Variables.ConString))
    {
        var table = new DataTable("");
        con.StatisticsEnabled = true;
        if (filterString != "")
            filterString = string.Format(" WHERE {0}", filterString);
        Variables.CmdString = string.Format("SELECT * FROM {0} {1}", tableName, filterString);
        var cmd = new SqlCommand(Variables.CmdString, con);
        var sda = new SqlDataAdapter(cmd);
        sda.Fill(table);
        Variables.CurrentStatistics = con.RetrieveStatistics();
        return table;
    }
}
毫米8

您可以使用转换器:

public class DateConverter : IValueConverter
{
    private static readonly DateTime s_defaultDate = new DateTime(1900, 01, 01);
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        DateTime date = (DateTime)value;
        return date == s_defaultDate ? string.Empty : date.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

XAML:

<ListView x:Name="LeavesListView" Margin="10,10,13,10" Background="White" Opacity="0.8" Grid.Row="2" FontFamily="Times New Roman" FontSize="14" FlowDirection="RightToLeft" SelectionChanged="LeavesListView_SelectionChanged" MouseDoubleClick="LeavesListView_MouseDoubleClick">
    <ListView.Resources>
        <local:DateConverter x:Key="DateConverter" />
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="تاريخ البدء" Width="120" TextBlock.TextAlignment="Center" DisplayMemberBinding="{Binding StartDate, Converter={StaticResource DateConverter}}" FrameworkElement.FlowDirection="RightToLeft"/>
            <GridViewColumn Header="تاريخ الأنتهاء" Width="120" TextBlock.TextAlignment="Center" DisplayMemberBinding="{Binding EndDate, Converter={StaticResource DateConverter}}" FrameworkElement.FlowDirection="RightToLeft" />
            <GridViewColumn Header="نوع الاجازة" Width="100" FrameworkElement.FlowDirection="RightToLeft">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding LeaveType}"  Foreground="Red" />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用连接字符串时,如何在组合框中将数据表日期时间列显示为日期?

来自分类Dev

@android:id / empty显示空视图,但当ListFragment中存在数据时不显示ListView

来自分类Dev

@android:id / empty显示空视图,但当ListFragment中存在数据时不显示ListView

来自分类Dev

列表为空时,不会显示ListView的空视图

来自分类Dev

弹出时ListView为空

来自分类Dev

asp .net中的Listview为空时如何隐藏div

来自分类Dev

输入字段为空时显示错误

来自分类Dev

UserCreationForm在字段为空时显示错误

来自分类Dev

当日期为空时,如何在日期输入字段中显示“ mm / dd / yyyy”而不是“ 12/31/1969”?

来自分类Dev

当 ListView 为空时应用程序崩溃 | 如果我使用 ArrayList<>(),ListView 不显示内容

来自分类Dev

在 NetSuite 中突出显示包含有时为空的字段的公式

来自分类Dev

仅当表中的SQL更新字段为空时

来自分类Dev

数据表中的 Richfaces 4 错误,当为空时,带有数据滚动条验证

来自分类Dev

当ListView数据为空时如何隐藏线性布局?

来自分类Dev

ListView中的EditText在ListView中滚动时丢失内容

来自分类Dev

ListView中的EditText在ListView中滚动时丢失内容

来自分类Dev

空时如何显示ListView的标题

来自分类Dev

长按ListView中的项目时如何显示新视图?

来自分类Dev

搜索项目时在 ListView 中错误滚动并突出显示

来自分类Dev

当状态代码在单独的文件中定义时,Listview 不显示

来自分类Dev

jQuery / Javascript数据表:如何在行选择时将行数据显示到html文本字段中

来自分类Dev

jQuery / Javascript数据表:如何在行选择时将行数据显示到html文本字段中

来自分类Dev

当ListView在Android中滑到底部时,ListView会上升

来自分类Dev

当R shift()类型为滞后时,数据表中的Ifelse无法正常工作

来自分类Dev

滚动ListView时在ActionBar中推出/拉出

来自分类Dev

在listView中滚动时CheckBox状态更改

来自分类Dev

在JavaFX中更新ListView时出现IndexOutOfBoundsException

来自分类Dev

片段中的Android listView单击时崩溃

来自分类Dev

在listView中滚动时CheckBox状态更改

Related 相关文章

  1. 1

    使用连接字符串时,如何在组合框中将数据表日期时间列显示为日期?

  2. 2

    @android:id / empty显示空视图,但当ListFragment中存在数据时不显示ListView

  3. 3

    @android:id / empty显示空视图,但当ListFragment中存在数据时不显示ListView

  4. 4

    列表为空时,不会显示ListView的空视图

  5. 5

    弹出时ListView为空

  6. 6

    asp .net中的Listview为空时如何隐藏div

  7. 7

    输入字段为空时显示错误

  8. 8

    UserCreationForm在字段为空时显示错误

  9. 9

    当日期为空时,如何在日期输入字段中显示“ mm / dd / yyyy”而不是“ 12/31/1969”?

  10. 10

    当 ListView 为空时应用程序崩溃 | 如果我使用 ArrayList<>(),ListView 不显示内容

  11. 11

    在 NetSuite 中突出显示包含有时为空的字段的公式

  12. 12

    仅当表中的SQL更新字段为空时

  13. 13

    数据表中的 Richfaces 4 错误,当为空时,带有数据滚动条验证

  14. 14

    当ListView数据为空时如何隐藏线性布局?

  15. 15

    ListView中的EditText在ListView中滚动时丢失内容

  16. 16

    ListView中的EditText在ListView中滚动时丢失内容

  17. 17

    空时如何显示ListView的标题

  18. 18

    长按ListView中的项目时如何显示新视图?

  19. 19

    搜索项目时在 ListView 中错误滚动并突出显示

  20. 20

    当状态代码在单独的文件中定义时,Listview 不显示

  21. 21

    jQuery / Javascript数据表:如何在行选择时将行数据显示到html文本字段中

  22. 22

    jQuery / Javascript数据表:如何在行选择时将行数据显示到html文本字段中

  23. 23

    当ListView在Android中滑到底部时,ListView会上升

  24. 24

    当R shift()类型为滞后时,数据表中的Ifelse无法正常工作

  25. 25

    滚动ListView时在ActionBar中推出/拉出

  26. 26

    在listView中滚动时CheckBox状态更改

  27. 27

    在JavaFX中更新ListView时出现IndexOutOfBoundsException

  28. 28

    片段中的Android listView单击时崩溃

  29. 29

    在listView中滚动时CheckBox状态更改

热门标签

归档