我有一个WPF DataGrid,DataSource是ObservableCollection<MyItem>
MyItem
具有名为Hour
的属性,该属性会自动生成。小时在DataGrid中用作RowHeader。
如果我向集合添加新项目,则会填充Hour属性,RowHeader将显示它。但我无法控制“占位符行”的RowHeader。
如何实现占位符行的RowHeader始终为*
个字符,但所有普通行都将Hour
属性作为RowHeader?
答案 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 = "✲";
}
}