所以我一直有這個問題好幾天了,我有一個簡單的ListView項目被動態填充。用戶可以添加到應該顯示在顯示屏上的條目中。這工作,但是當我試圖做任何事情與listView項目,刪除甚至刷新它們,我得到一個NullReferenceException。請看下面的代碼。WPF ListView在每次更改項目時都會拋出異常
XAML文件(片段):
<ListView x:Name="listView" Grid.Column="1" HorizontalAlignment="Left" Height="100" Margin="10,97,0,0" Grid.Row="1" VerticalAlignment="Top" Width="112" IsSynchronizedWithCurrentItem="False">
<ListView.View>
<GridView>
<GridViewColumn Header="Names" DisplayMemberBinding="{Binding documentName}"/>
</GridView>
</ListView.View>
</ListView>
這裏是從的.cs代碼片段:
public class Entry {
public string documentName {
get;
set;
}
public string languageAssistantName {
get;
set;
}
public string assignmentDate {
get;
set;
}
public string deadline {
get;
set;
}
public string progress {
get;
set;
}
public string supervisorName {
get;
set;
}
public string remarks {
get;
set;
}
public string proofread {
get;
set;
}
public Entry(string documentName, string assignmentDate, string deadline, string supervisorName, string remarks, string LAName, string progress, string proofread) {
this.documentName = documentName;
this.assignmentDate = assignmentDate;
this.deadline = deadline;
this.supervisorName = supervisorName;
this.remarks = remarks;
this.languageAssistantName = LAName;
this.progress = progress;
this.proofread = proofread;
}
}
List <Entry> entryList = new List <Entry>();
private void UpdateListView() //This is the code that adds the new entries to the listView, this works
{
listLabel.Text = "";
for (int i = 0; i < entryList.Count; i++) {
listLabel.Text += i + " | " + entryList[i].ToString() + "\n\n";
listView.Items.Insert(0, entryList[i]);
}
}
/*This is the part that throws exception
*/
private void button_Click(object sender, RoutedEventArgs e) {
listView.Items.RemoveAt(0);
}
我與的SelectedItem,刷新的ItemsSource和其他一切我嘗試這樣做可以想到:/。每次我嘗試從列表中刪除任何內容時,都會收到NullReferenceException。最糟糕的是,它實際上並沒有向我顯示發生錯誤的地方,所以我認爲這是我無法控制的事情。但是當我試圖修復.Net框架時,它說沒有錯。有任何想法嗎?
ListView.ItemsSource'只是綁定'到一個'的ObservableCollection',並添加/從集合中刪除項目。你在這裏重新發明一個方形車輪。 –
你的編碼方式看起來像WinForms。如果你使用WPF,最好忘記一下,不要像WinForms那樣做。看看WPF如何利用數據綁定來呈現UI中的任何數據/內容/狀態...... – elgonzo
將它綁定到ObservableCollection實際上是我嘗試的第一件事,同樣的問題在那裏。我可以很好地添加它,但不會讓我刪除或更改任何內容。 –
gogo199432