行是不可见的,因为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);

行是不可见的,因为ListView是用ObservableCollection填充的

这可能是一个非常简单的;您的绑定:{Binding Question}

和你的c#: Questions

(复数与单数)

我以前也有过这样的经历:)