需求和效果
應用WPF技術進行開發的時候,大多都會遇到給DataGrid添加序號的問題,今天分享一下查閱了很多stackoverflow的文章后,總結和改進過來的方法,先看一下效果圖,文末附Demo下載鏈接
設計思想和代碼
這里在DataGrid行級應用單值轉換器,獲取DataGrid的行號 , 轉換為對應的序號,思路和實現非常簡單,核心代碼就幾行
Binding:
<DataGridTextColumn Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Converter={StaticResource rowToIndexConverter}}" />
Converter:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { DataGridRow row = value as DataGridRow; if (row != null) return row.GetIndex() + 1; else return -1; }
順便一提,應用字典類型綁定DataGrid數據源,還是很方便的, 感興趣的小伙伴可以一試 :)
<DataGridTextColumn Header="姓名" Binding="{Binding [Name]}" Width="60" /> <DataGridTextColumn Header="年齡" Binding="{Binding [Age]}" Width="60" /> <DataGridTextColumn Header="時間" Binding="{Binding [Time]}" Width="60" />
下載
鏈接: https://pan.baidu.com/s/1dE1dZPn
密碼: wa1v