我有一个longlistmultiselector,我需要删除一个元素。 我可以从它的itemsource中删除该元素,但是在UI中没有反映出来。 在UI屏幕中没有变化。
以下是从lonlistmultiselector(onboardList)中删除项目的代码:
var updatedReviewList = onboardList.ItemsSource;
MessageBoxResult result = MessageBox.Show(Constants.DELETE_MSG, Constants.DELETE_MSG, MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
if (reqDetails != null)
{
for (var index = 0; index < onboardList.ItemsSource.Count; index++ )
// foreach (var item in onboardList.ItemsSource)
{
var item = onboardList.ItemsSource[index];
if (onboardList.SelectedItems.Contains(item))
{
//this.onboardList.ItemsSource.Remove(item);
updatedReviewList.Remove(item);
}
}
this.onboardList.ItemsSource = updatedReviewList;
}
知道我可能缺少什么吗? 提前致谢
答案 0 :(得分:3)
这样做..它应该有用。
this.onboardList.ItemsSource = null;
this.onboardList.ItemsSource = updatedReviewList;
如果使用实现INotifyPropertyChanged的对象的ObservableCollection,则会更好。这将允许双向绑定数据。如果从itemsource中删除了某些内容,它将反映在UI中,如果从UI中删除了某些内容,它将自动从ObservableCollection中删除该条目
有关此处的更多信息: -
http://msdn.microsoft.com/en-us/library/windows/apps/cc278072%28v=vs.105%29.aspx