我在WPF中填充listview时遇到问题
我面临的问题完全一样
Bind an ObservableCollection to a ListView。
但解决方案对我不起作用。我仍然得到错误:40:BindingExpression路径错误与我在xaml文件中的绑定属性。
我的xaml如下:
<ListView x:Name="qList" ItemsSource="{Binding Question}">
<ListView.View>
<GridView>
<GridViewColumn Header="h1" DisplayMemberBinding="{Binding qNo}"/>
<GridViewColumn Header="h2" DisplayMemberBinding="{Binding question}"/>
<GridViewColumn Header="h3" DisplayMemberBinding="{Binding imageName}"/>
<GridViewColumn Header="h4" DisplayMemberBinding="{Binding a1}"/>
<GridViewColumn Header="h5" DisplayMemberBinding="{Binding a2}"/>
<GridViewColumn Header="h5" DisplayMemberBinding="{Binding a3}"/>
<GridViewColumn Header="h6" DisplayMemberBinding="{Binding a4}"/>
<GridViewColumn Header="h7" DisplayMemberBinding="{Binding ca}"/>
</GridView>
</ListView.View>
</ListView>
在我的.cs文件中,我已经定义了ObservableCollection和Question类,如下所示:
ObservableCollection<Question> _Questions = new ObservableCollection<Question>();
public ObservableCollection<Question> Questions
{ get { return _Questions; } }
public class Question
{
public int qNo { get; set; }
public string question { get; set; }
public string imageName { get; set; }
public string a1 { get; set; }
public string a2 { get; set; }
public string a3 { get; set; }
public string a4 { get; set; }
public int ca { get; set; }
}
为了填充listview(qList),我使用以下代码:
DataSet ds = db.GetQList(qSetNo); //This is returning a correct dataset
_Questions.Add(new Question { });
if (ds.Tables.Count > 0)
qList.ItemsSource = ds.Tables[0].DefaultView;
列表视图正在填充正确的数据。当单击列表视图行时,会注意到相关文本框中填充了数据集(ds)中的数据。
编辑:
new SqlDataAdapter(new SqlCommand("SELECT " + q_column_qNo + "," + q_column_question + "," + q_column_imageName + "," + q_column_a1 + "," + q_column_a2 + "," + q_column_a3 + "," + q_column_a4 + "," + q_column_ca + " FROM " + q_table_name + " WHERE " + q_column_qSet + "=" + qSetNo, conn)).Fill(ds);
答案 0 :(得分:0)
这可能是一个非常简单的;
你的约束:{Binding Question}
和您的C#:Questions
(Plural vs. Singular)
之前去过那里:)