DataGrid占位符行标题自定义

时间:2013-07-19 15:32:38

标签: wpf datagrid datagridrowheader

我有一个WPF DataGrid,DataSource是ObservableCollection<MyItem>

MyItem具有名为Hour的属性,该属性会自动生成。小时在DataGrid中用作RowHeader。

如果我向集合添加新项目,则会填充Hour属性,RowHeader将显示它。但我无法控制“占位符行”的RowHeader。

如何实现占位符行的RowHeader始终为*个字符,但所有普通行都将Hour属性作为RowHeader?

1 个答案:

答案 0 :(得分:1)

MyItem删除小时(当时不需要),并使RowHeader自动生成。 如果Row.Item不是MyItem,则*以编程方式设置为Row.Header。

    void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
    {
        if (e.Row.Item is MyItem)
        {
            e.Row.Header = (e.Row.GetIndex()).ToString("D2");
        }
        else // Row is {NewItemPlaceholder}
        {
            e.Row.Header = "✲";
        }
    }