我有一个Mobile类型的收藏
public class Mobile
{
public string MobileName { get; set; }
public string MobileOS { get; set; }
}
ObservableCollection<Mobile> MobileList = new ObservableCollection<Mobile>()
{
new Mobile() { MobileName = "iPhone 6", MobileOS = "IOS" },
new Mobile() { MobileName = "Galaxy S6", MobileOS = "Android" },
new Mobile() { MobileName = "Lumina", MobileOS = "Windows" },
}适当的WPF DataGrid (XAML)
<DataGrid Name="Grid1" AutoGenerateColumns="False" ItemsSource="{Binding MobileList, UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Columns>
<!--Column 1-->
<DataGridTextColumn Binding="" Header="Index" />
<!--Column 2-->
<DataGridTextColumn Binding="{Binding MobileName}" Header="Name" />
<!--Column 3-->
<DataGridTextColumn Binding="{Binding MobileOS}" Header="OS" />
</DataGrid.Columns>
</DataGrid>我需要在列1中设置索引值。请帮助我如何设置与集合相关的列的索引值。
备注:我需要在XAML级别,而不是在C#代码级实现中
必需的数据网格:模型快照

发布于 2016-06-23 06:37:10
不需要定制列,只需将LoadingRow事件添加到DataGrid中并删除<DataGridTextColumn Header="Index" />
<DataGrid Name="Grid1" AutoGenerateColumns="False" LoadingRow="Grid1_OnLoadingRow">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding MobileName}" Header="Name" />
<DataGridTextColumn Binding="{Binding MobileOS}" Header="OS" />
</DataGrid.Columns>
</DataGrid>然后:
private void Grid1_OnLoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = (e.Row.GetIndex()).ToString();
}https://stackoverflow.com/questions/37983858
复制相似问题