class PropData
{
[Category("Cell Information")]
[DisplayName("Width")]
public int Width { get; set; } = 0;
[Category("Cell Information")]
[DisplayName("Height")]
public int Height { get; set; } = 0;
[Category("Cell Information")]
[DisplayName("Target X")]
public double TargetX { get; set; } = 0.0;
[Category("Cell Information")]
[DisplayName("Target Y")]
public double TargetY { get; set; } = 0.0;
[Category("Cell Information")]
[DisplayName("Cell ID")]
public string ID { get; set; } = string.Empty;
}
일반적으로 PropertyGrid에서 위와 같이 사용할 Class를 선언한 후 PropertyGrid에 연결 시켜서 사용하면
자신이 어떤 순서로 Class 내의 아이템을 선언한다고 할 지라도 아이템의 DisplayName 오름차 순으로 자동 정렬이 된다.
여기서 자신이 원하는 순서대로 정렬을 하고 싶다면 Tab 기호를 사용하면 어느 정도 우선순위를 둘 수 있다.
Tab 기호가 들어간 DisplayName부터 우선순위를 두게 된다.
class PropData
{
[Category("Cell Information")]
[DisplayName("Width")]
public int Width { get; set; } = 0;
[Category("Cell Information")]
[DisplayName("Height")]
public int Height { get; set; } = 0;
[Category("Cell Information")]
[DisplayName("\tTarget X")] // <-- Tab 기호 추가
public double TargetX { get; set; } = 0.0;
[Category("Cell Information")]
[DisplayName("\tTarget Y")] // <-- Tab 기호 추가
public double TargetY { get; set; } = 0.0;
[Category("Cell Information")]
[DisplayName("\tCell ID")] // <-- Tab 기호 추가
public string ID { get; set; } = string.Empty;
}
위와 같이 3개의 아이템에 Tab 기호를 추가한 후 실행해보면
아까와는 다르게 Tab 기호가 붙은 항목 부터 오름차순으로 정렬한 후 Tab 기호가 안붙은 항목을 오름차순으로 정렬한다.
아이템을 하나 더 추가하여
class PropData
{
[Category("Cell Information")]
[DisplayName("Width")] // <-- 3순위
public int Width { get; set; } = 0;
[Category("Cell Information")]
[DisplayName("Height")] // <-- 3순위
public int Height { get; set; } = 0;
[Category("Cell Information")]
[DisplayName("\tTarget X")] // <-- 2순위
public double TargetX { get; set; } = 0.0;
[Category("Cell Information")]
[DisplayName("\tTarget Y")] // <-- 2순위
public double TargetY { get; set; } = 0.0;
[Category("Cell Information")]
[DisplayName("\t\tCell ID")] // <-- 1순위
public string ID { get; set; } = string.Empty;
[Category("Cell Information")]
[DisplayName("\tAuto Align")] // <-- 2순위
public bool AutoAlign { get; set; } = false;
}
이렇게 선언하게 되면
이렇게 정렬이 됩니다.
'Study > C#, Winform' 카테고리의 다른 글
[C#] 바이트 배열 다루기 : BitConverter (0) | 2023.08.16 |
---|---|
[C#] 바이트 배열을 이용한 비트 다루기 : BitArray (0) | 2023.07.15 |
[C#] 배열 정렬 기능 (Sort) (0) | 2022.12.10 |
[C# Winform] DataGridView Column Header Drag (컬럼 헤더 드래그) (0) | 2022.10.24 |
[C#] DateTime 시간 자르기, 반올림, 반내림, 가까운 값 (1) | 2022.10.11 |