사전 항목이 포함 된 목록이 있습니다. 즉, [0] = 사전 항목 => 항목 [0] = id, 항목 [1] = 이름, 항목 [2] = 금액입니다.ListView에 사전 바인딩 WPF
GridView에서 ListView 컨트롤에 표시해야합니다. 사전은 다를 수 있습니다.
UPDATE :
목록의 각 항목은 다음과 같습니다
[ "_id"] = "11212131" [ "제목"] = "이 제목은"[ "DateCreated"] = "some date"
사전 내의 항목이 다를 수 있습니다.
업데이트 2 : 나는 동적 GridView 컨트롤을 만든 다음 GridView 컨트롤에 열을 추가하려면 다음 코드를 사용하고
. 그것은 작동하지만 지금은 동일한 반복 열의 긴 수평선이 있습니다. 열 이름을 표시하고 해당 열에 속한 데이터를 표시해야합니다.
var gridview = new GridView();
foreach (var o in objs)
{
var dic = o as Dictionary<String, Object>;
var enumerator = dic.GetEnumerator();
while (enumerator.MoveNext())
{
var current = enumerator.Current;
var gridViewColumn = new GridViewColumn();
gridViewColumn.Header = current.Key;
var binding = new Binding(current.Key);
//binding.Source = current;
gridViewColumn.DisplayMemberBinding = binding;
gridview.Columns.Add(gridViewColumn);
}
// new row
}
lvCollections.View = gridview;
UPDATE 3 :
내가 아주 가까이입니다. 작동하지만 반복되는 열이있는 긴 단일 행만 표시합니다.
var gridview = new GridView();
foreach (var o in objs)
{
var dic = o as Dictionary<String, Object>;
var enumerator = dic.GetEnumerator();
while (enumerator.MoveNext())
{var gridViewColumn = new GridViewColumn();
var current = enumerator.Current;
gridViewColumn.Header = current.Key;
var binding = new Binding();
binding.Source = current;
binding.Path = new PropertyPath("Value");
gridViewColumn.DisplayMemberBinding = binding;
gridview.Columns.Add(gridViewColumn);
}
// new row
}
lvCollections.ItemsSource = objs;
lvCollections.View = gridview;
나는이 아이디어를 분명히 이해하고 있지만 기본 데이터가 어떻게 제한되어 있는지 볼 수 있도록 수업을 게시 할 수 있습니까? – Charlie
고정 된 클래스가 없습니다. 개체는 serialize 된 다음 사전 형식으로 deserialize됩니다. – azamsharp