C# 按代码绑定ComboBox会导致System.ArgumentOutOfRangeException

C# 按代码绑定ComboBox会导致System.ArgumentOutOfRangeException,c#,wpf,xaml,combobox,windows-phone-8.1,C#,Wpf,Xaml,Combobox,Windows Phone 8.1,我的Windows Phone 8.1应用程序中有两个组合框: 一家公司(ComboBoxCompany) 一份给公司员工(员工) 假设他们的XAML是这样的 <ComboBox Name="ComboBoxEmployees" SelectionChanged="ComboBoxEmployees_SelectionChanged"> <ComboBox.ItemTemplate> <DataTemplate>

我的Windows Phone 8.1应用程序中有两个组合框:

  • 一家公司(ComboBoxCompany)
  • 一份给公司员工(员工)
假设他们的XAML是这样的

<ComboBox Name="ComboBoxEmployees"
      SelectionChanged="ComboBoxEmployees_SelectionChanged">
   <ComboBox.ItemTemplate>
      <DataTemplate>
         <StackPanel>
            <TextBlock Text="{Binding Id}"/>
            <TextBlock Text="{Binding Person_Name}"/>                                  
         </StackPanel>
      </DataTemplate>
   </ComboBox.ItemTemplate>
</ComboBox>

<ComboBox Name="ComboBoxCompany"
          SelectionChanged="ComboBoxCompany_SelectionChanged">
<ComboBox.ItemTemplate>
   <DataTemplate>
      <StackPanel>
         <TextBlock Text="{Binding Company_Name}"/>                                 
      </StackPanel>
   </DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
第一次初始化工作正常。
我真的不知道该怎么做。你能给我一个提示吗?

我已经通过插入

ComboBoxEmployees.SelectionChanged-=ComboBoxEmployees_SelectionChanged;
ComboBoxEmployees.ItemsSource = null;

在进行任何操作或绑定之前。ComboBoxEmployees似乎正在使用
ComboxEmployees.SelectionChanged
事件处理程序侦听更改。另外,我在索引和指针方面也犯了错误。

我很确定问题出在您标记的行之前。您是否使用任何索引器,例如
员工[0]
?我应该在哪里使用它?在装订之前?我不想说你应该用它。我只是想知道你是不是用那种东西。例外情况意味着,您想要访问不存在的数组或集合的索引。很抱歉,英文措辞不好。实际上,在调试时,员工列表是正确的,如监视窗口中所示-只是绑定使所有内容崩溃。在我编写的这些函数中,我从不使用get或ElementAt,只使用绑定。
public MainPage() {
   InitializeComponent();
   SetPage();
}

private void SetPage(){
   //getting companies data from DB...
   ComboBoxCompany.ItemsSource = companies;
   //lambda expression to get the Employees of a Company
   ComboBoxEmployees.ItemsSource = employees
}
ComboBoxEmployees.SelectionChanged-=ComboBoxEmployees_SelectionChanged;
ComboBoxEmployees.ItemsSource = null;