我正在使用WPF和MVVM。在WPF DataGrid RowHeader中顯示一個運行號
我如何可以綁定:
- 數字
- 或CLR對象與屬性號
- 或字符串
列表的列表清單WPF DataGrid的RowHeader?
我正在使用WPF和MVVM。在WPF DataGrid RowHeader中顯示一個運行號
我如何可以綁定:
列表的列表清單WPF DataGrid的RowHeader?
你可以採取這種方法http://www.codeproject.com/KB/WPF/MVVM_DataGrid.aspx?msg=3241301
基本上你是創建一個列表,將處理的編號給你,只要T的對象實現ISequenceObject。
如果你想走另一個方向,你可以看看處理LoadingRow事件,並簡單地將1添加到已知的DataColumn。這不會破壞MVVM的概念,因爲編號列不是業務邏輯的一部分,而是演示文稿的一部分。
要使編號DataGrid可重用,您還可以從DataGrid繼承並創建自己的編號DataGrid。
我從http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7d0cbdf2-dea3-4dd4-a570-08aa6c78d911找到了這個問題的優雅解決方案。這裏是回顧:
<tk:DataGrid x:Name="dg" LoadingRow="dg_LoadingRow" ItemsSource="{Binding}">
<tk:DataGrid.RowHeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type tk:DataGridRow}}, Path=Header}"></TextBlock>
</DataTemplate>
</tk:DataGrid.RowHeaderTemplate>
</tk:DataGrid>
private void dg_LoadingRow(object sender, Microsoft.Windows.Controls.DataGridRowEventArgs e)
{
e.Row.Header = (e.Row.GetIndex() + 1).ToString();
}
但是,我不能讓行標題上的號碼右對齊。將HorizontalAlignment =「Right」添加到TextBlock並沒有幫助。我還嘗試將TextBlock包裝到StackPanel中,並設置此屬性,但它也不起作用。任何想法?
第四屆要求我忘了在此列出: - 的的rowHeader不能顯示在第一列 這會導致麻煩篩選,排序等 – msfanboy 2010-06-08 17:39:43