我正在尝试填充窗口加载事件的列表视图,但没有出现。
这是我的XAML
<ListView Height="142" Name="listView1" Width="371">
<ListView.View>
<GridView>
<GridViewColumn Width="60" Header="ID"/>
<GridViewColumn Width="300" Header="User Name" />
</GridView>
</ListView.View>
</ListView>
</GroupBox>
这是我的c#代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ArrayList _ID = new ArrayList();
ArrayList _UserList = new ArrayList();
using (DataClasses1DataContext dc = new DataClasses1DataContext())
{
var Users = (from u in dc.users select u.username).ToList();
for (int i = 0; i < Users.Count(); i++)
{
_UserList.Add(Users[i]).ToString();
}
using (DataClasses1DataContext dcc = new DataClasses1DataContext())
{
var ID = (from u in dcc.users select u.id).ToList();
for (int i = 0; i < ID.Count(); i++)
{
_ID.Add(ID[i]).ToString();
}
}
}
请帮忙
答案 0 :(得分:3)
GridViewColumns
通过DisplayMemberBinding
或CellTemlate
开展工作。你既不指定。
此外,我没有看到您在代码中引用ListView,至少您需要通过ListView.Items.Add
或设置ListView.ItemsSource
添加项目。
答案 1 :(得分:2)
首先制作对象,我看到你有2个不同的列表。只需使用一个对象,保留两个数据。
接下来,像H.B.说,你需要指定每列显示的内容。简单的方法是使用DisplayMemberPath
,更复杂但也更灵活的解决方案是使用专门的CellTemplate
。
如果您的数据对象看起来像这样
public class MyObject
{
public int Id{get;set;}
public string Name {get;set;}
}
你的ListView在xaml中保存这些项目的列表看起来像。
<ListView.View>
<GridView>
<GridViewColumn Width="60" Header="ID" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Width="300" Header="User Name" DisplayMemberBinding="{Binding Name}" />
</GridView>
</ListView.View>
希望有所帮助。
答案 2 :(得分:1)
Well ListView1没有绑定到任何数据源。
也永远不会将生成的数组分配给列表视图....
查看ItemSource属性