2010-06-17 2 views
1

У меня есть ObservableCollection, который является dataContext для моего дерева, когда я пытаюсь удалить элемент из ObservableCollection. Я получу ошибку, если ссылка объекта не установлена ​​в экземпляр объекта. можете ли вы сказать мне, почему эта ошибка происходит и что такое решениеwpf observableCollection

благодаря

EDIT 1: Код что-то вроде:

class MyClass : INotifyPropertyChanged 
{ 
    //my class code here 
} 
public partial class UC_myUserControl : UserControl 
{ 
    private ObservableCollection<MyClass> myCollection = new ObservableCollection<MyClass>(); 
    private void UserControl_Loaded(object sender, RoutedEventArgs e) 
    { 
     myCollection.add(new myClass); 
     myTreeView.DataContext = myCollection ; 
    } 
    private void deleteItem() 
    { 
     myCollection.RemoveAt(0); 
     //after removing I get error Which I guess should be something related 
     //to interface update but I don't know how can I solve it 
    } 
} 

Exception деталь: System.NullReferenceException было необработанное Message = "Ссылка на объект не установлена ​​в экземпляр объекта." Source = «PresentationFramework»

EDIT 3: У меня есть стиль, который для моего TreeItem, чтобы держать расширенную

элементов дерева
<Style TargetType="TreeViewItem"> 
     <Setter Property="IsExpanded" Value="True" /> 
</Style> 

и с комментируя эту часть я не буду получать какую-либо ошибку !!! Теперь я хочу изменить свой вопрос на вопрос, почему этот стиль вызывает ошибку?

+0

Просьба указать код, вызывающий его. Вы получаете исключение нулевого указателя, но без кода очень сложно определить, почему. –

+0

Я добавил код к вопросу, спасибо – Asha

+0

Я предполагаю, что вы на самом деле помещаете что-то в ObservableCollection, прежде чем называть 'deleteItem'. Как насчет публикации исключения. – Robaticus

ответ

1

Как я уже сказал в EDIT2, причиной является стиль, который у меня есть для расширения всех деревьев с удалением стиля. Isue решен .thanks для всех комментариев.

<Style TargetType="TreeViewItem"> 
     <Setter Property="IsExpanded" Value="True" /> 
</Style> 
+0

Это действительно было обновление вашего вопроса, а не отдельный ответ. – ChrisF

1

У меня была аналогичная проблема, когда у меня также была привязка к выбранному элементу в коллекции, и я попытался удалить выбранный элемент. Мне пришлось сначала изменить выбранный элемент, а затем удалить его.

Смежные вопросы