Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Silverlight ListBox在更改SelectedItem时抛出范围外异常_C#_Silverlight_Mvvm - Fatal编程技术网

C# Silverlight ListBox在更改SelectedItem时抛出范围外异常

C# Silverlight ListBox在更改SelectedItem时抛出范围外异常,c#,silverlight,mvvm,C#,Silverlight,Mvvm,我有一些Silverlight XAML曾经可以工作,但我似乎不知道我做了什么使它突然停止工作,甚至不知道如何改变它 以下是一些XAML: <ListBox ItemsSource="{Binding ItemsForSelectedPublisher}" SelectedItem="{Binding SelectedItemForPublisher, Mode=TwoWay}" DisplayMemberPath="ItemNameWithSelect

我有一些Silverlight XAML曾经可以工作,但我似乎不知道我做了什么使它突然停止工作,甚至不知道如何改变它

以下是一些XAML:

<ListBox ItemsSource="{Binding ItemsForSelectedPublisher}"
         SelectedItem="{Binding SelectedItemForPublisher, Mode=TwoWay}"
         DisplayMemberPath="ItemNameWithSelectionCount"
         SelectionMode="Single"
         HorizontalAlignment="Left" 
         FontSize="14" 
         Width="300" 
         Height="500"
         />

据我所知,列表框得到了一些不正确的索引,但不知道它是什么,也不知道为什么会发生这种情况。有人知道这是怎么发生的吗?在这一点上,我不知道还有什么地方可以看。

经过大量的研究,我发现根本原因是我自己的错(这并不令人惊讶)。显然,我自己的代码中的错误在于对我的一些视图模型的Equals()重写不正确。这导致ListBox绑定失控并抛出超出范围的异常

你能提供更多的信息或代码吗?你能为你的ItemViewModel发布代码吗?
    public ObservableCollection<ItemViewModel> ItemsForSelectedPublisher
    {
        get { return _itemsForSelectedPublisher; }
        private set
        {
            if (_itemsForSelectedPublisher != value)
            {
                _itemsForSelectedPublisher = value;
                RaisePropertyChanged(() => ItemsForSelectedPublisher);
            }
        }
    }

    public ItemViewModel SelectedItemForPublisher
    {
        get { return _selectedItemForPublisher; }
        set
        {
            if (_selectedItemForPublisher != value)
            {
                _selectedItemForPublisher = value;
                RaisePropertyChanged(() => SelectedItemForPublisher);
            }
        }
    }