AutoGeneratedColumns 이벤트는 내 열 이름을 설정 AutoGeneratingColumn 이벤트와 속성을 사용했다. 먼저 속성 클래스를 만들
은 ...
public class ColumnNameAttribute : System.Attribute
{
public ColumnNameAttribute(string Name) { this.Name = Name; }
public string Name { get; set; }
}
은 그 때 나는
public class Test
{
[ColumnName("User Name")]
public string Name { get; set; }
[ColumnName("User Id")]
public string UserID { get; set; }
}
는 그럼 난 내 AutoGeneratingColumn 이벤트 핸들러를 작성 ... 새 속성 내 데이터 클래스 멤버를 장식 ...
void dgPrimaryGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
var desc = e.PropertyDescriptor as PropertyDescriptor;
var att = desc.Attributes[typeof(ColumnNameAttribute)] as ColumnNameAttribute;
if(att != null)
{
e.Column.Header = att.Name;
}
}
... 그리고 내 그리드 및 테스트에 첨부 ...
dgPrimaryGrid.AutoGeneratingColumn += dgPrimaryGrid_AutoGeneratingColumn;
var data = new object[]
{
new Test() { Name = "Joe", UserID = "1" }
};
dgPrimaryGrid.ItemsSource = data;
다음은 그 모습입니다. 열 이름은 속성 이름이 아닙니다 (기본 동작).
이 방법은 좀 더 많은 작업이지만, 열이 바운드 열 같은 장소에서 정의 표제를 가지고하는 것이 좋다. 열 이름을 수정하기 위해 다른 곳으로 갈 필요없이 열의 순서를 바꿀 수 있습니다.