行是不可见的,因为ListView是用ObservableCollection填充的
本文关键字:ListView 是用 ObservableCollection 填充 因为 | 更新日期: 2023-09-27 18:02:03
我在WPF中填充列表视图时遇到了问题。
我所面临的问题和……完全一样将ObservableCollection绑定到ListView
但这个方法对我不起作用。我仍然得到错误:40:BindingExpression路径错误与我在我的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;
正在用正确的数据填充listview。当单击listview行时,相关的文本框将填充来自数据集(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);
这可能是一个非常简单的;您的绑定:{Binding Question}
和你的c#: Questions
(复数与单数)
我以前也有过这样的经历:)