如何解决我正在从ObservableCollection中添加和删除,但是网格未更新
|| 我正在使用此代码更新我的网格。它不起作用。网格未更新。我找不到任何代码问题。这是一个帮助台应用程序。我正在尝试使用客户端的网格更新服务器上的已关闭票证。救命 !public class DAL_LOADTICKETS
{
private static string URL =\"http://helpdesk.hujelabs.com/user.php/\"+Login.user_id+\"/query/\";
public static void/*ObservableCollection<cTicket>*/ LoadOPENTICKETS()
{
// Execute the query using the LINQ to XML
var tickets = from c in XElement.Load(URL).Elements(\"query\") select c;
foreach (var ticks in tickets)
{
cTicket lTicket = new cTicket
{
TicketID = ticks.Element(\"query_id\").Value,TicketStatus = ticks.Element(\"status\").Value,TicketSubject = ticks.Element(\"subject\").Value,TicketDescription = ticks.Element(\"description\").Value,TicketTags = ticks.Element(\"tag\").Value,TimeStamp = ticks.Element(\"timestamp\").Value,};
if (ticks.Element(\"status\").Value == \"open\")
{
if (!Window1.OpenTicketsList.Contains(lTicket))
{
Window1.OpenTicketsList.Add(lTicket);
}
}
else if (ticks.Element(\"status\").Value == \"closed\")
{
if (Window1.OpenTicketsList.Contains(lTicket))
{
Console.WriteLine(\"VISITED BUT NOT DELETED\");
Window1.OpenTicketsList.Remove(lTicket);
}
}
}
}
<Grid Width=\"756\" Background=\"White\">
<ListView Name=\"OpenReqList\" HorizontalAlignment=\"Stretch\" VerticalAlignment=\"Top\" ItemsSource=\"{Binding TicketCollection}\" Width=\"750\" PreviewMouseDoubleClick=\"OpenReqList_PreviewMouseDoubleClick\" IsSynchronizedWithCurrentItem=\"True\">
<ListView.View>
<GridView >
<GridView.Columns>
<GridViewColumn Width=\"100\" Header=\"Ticket ID\" DisplayMemberBinding=\"{Binding TicketID}\"/>
<GridViewColumn Width=\"250\" Header=\"Ticket Subject\" DisplayMemberBinding=\"{Binding Path=TicketSubject}\"/>
<GridViewColumn Width=\"190\" Header=\"Ticket Send Time\" DisplayMemberBinding=\"{Binding Path=TimeStamp}\"/>
<GridViewColumn Width=\"190\" Header=\"Ticket Status\" DisplayMemberBinding=\"{Binding Path=TicketStatus}\"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
public class cTicket
{
public string TicketID { get; set; }
public string TicketStatus { get; set; }
public string TicketSubject { get; set; }
public string TicketDescription { get; set; }
public string TicketTags { get; set; }
public string TicketDiscussionID { get; set; }
public string ResponseAdmin { get; set; }
public string ResponseClient { get; set; }
public string TimeStamp { get; set; }
}
解决方法
看来您的代码正在构造一个新的票证,并试图将其从ObservableCollection中删除。尝试找到您收藏中已存在的票证,然后将其删除。或者,您可能需要在Ticket类上覆盖Equals,以便ObservableCollection知道新的Ticket与旧的Ticket相等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。