所以我有Dictionary
:
Dictionary<string, double> _statistics;
我想将此Dictionary
添加到我的ListView
,其中包含2列:
DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("Percent");
foreach (KeyValuePair<string, double> item in _statistics)
table.Rows.Add(item.Key, item.Value);
listView.ItemsSource = table;
出了错误:
无法将类型'System.Data.DataTable'隐式转换为 'System.Collections.IEnumerable'。存在显式转换(是 你错过了一个演员?)
修改
我也试试这个:
public class MyItem
{
public string Name{ get; set; }
public double Percentage { get; set; }
}
var gridView = new GridView();
ipStatilistViewsticslistView.View = gridView;
gridView.Columns.Add(new GridViewColumn
{
Header = "Name",
DisplayMemberBinding = new Binding("Name")
});
gridView.Columns.Add(new GridViewColumn
{
Header = "Percent",
DisplayMemberBinding = new Binding("Percent")
});
foreach (KeyValuePair<string, double> item in _statistics)
listView.Items.Add(new MyItem { Name = item.Key, Percentage = item .Value});
在这种情况下,我所能看到的只是我的2列heards。
答案 0 :(得分:1)
ItemsControl.ItemsSource
属于IEnumerable
类型,DataTable
未实现该接口。您需要使用DataView
代替
listView.ItemsSource = table.DefaultView;
或
listView.ItemsSource = new DataView(table);
修改强>
至于您的第二个示例,您设置ipStatilistViewsticslistView
的视图并使用项目填充listView
。我猜它不一样ListView
。您还绑定了Percent
列,而该属性的名称为Percentage