DevExpress Grid 에 Model 데이터를 바인딩하기 위해서는 반드시 각 필드가 Property 로 구현되어야합니다.
쿼리 결과를 동적으로 받아서 처리하는 경우 dynamic 객체 바인딩하는 경우 제대로 표시가 되지 않습니다.
ExpandoObject 를 이용하여 이를 해결 할 수 있습니다.
아래처럼 ExpandoObject 를 이용해 컬럼과 값을 추가하도록 합니다.
dynamic expando = new ExpandoObject();
AddProperty(expando, "ID", 1);
AddProperty(expando,"Name","Kjun");
private void AddProperty(ExpandoObject expando, string propertyName, object propertyValue)
{
var expandoDic = expando as IDictionary<string,object>;
if(expandoDic.ContainsKey(propertyName))
{
expandoDic[propertyName] = propertyValue;
}
else
{
expandoDic.Add(propertyName, propertyValue);
}
}
expando 에는 ID, Name 필드가 추가되고 각 1, kjun 값으로 값이 셋팅됩니다.
위 정의한 expando 객체를 ObservableCollection<object>
제대로 화면에 표시됩니다.
C# 명령 수행 결과 로그 읽어오기 (Read Console Log) (0) | 2024.04.24 |
---|---|
C# Edge 에서 지정한 Tab 닫도록 처리하기 (0) | 2024.04.24 |
C# .NET6 에서 Active Directory Authentication 사용하기 (0) | 2024.04.23 |
C# WebView2 설치여부에 따라 설치되도록 처리하기 (0) | 2024.04.22 |
C# 작업표시줄 깜빡이게 하기 - FlashWindowEx (0) | 2024.04.22 |