我有一个非常简单的绑定,但我看到的问题是,我没有显示这三个公司(company_list是一个列表,其中company包含要绑定的company_id),而是看到弹出的窗口中只有company_list中的第一个company_id。我有其他绑定,它们似乎工作得很好,在其他一些情况下,我看到我使用了ItemSource而不是DataContext,但当我使用它时,我会得到“在使用ItemsSource之前,Items集合必须为空”。我在stackoverflow、msdn和其他地方广泛搜索了这个问题的简单答案,并看到了大多数我无法理解/应用的非常复杂的解决方案。
当我的窗口出现时,它具有:
公司A
它应该具有:
公司A
CompanyB
CompanyC
这是company_list的内容(是的,在调试器中验证)。建议不胜感激!代码和XAML紧随其后。
ReadMasterCompanyList(); // populates a_state.company_list with 3 companies
// display company list dialog
CompanySelect cs_window = new CompanySelect();
cs_window.CompanyListView.DataContext = a_state.company_list;
// fails: cs_window.CompanyListView.ItemsSource = a_state.company_list;
cs_window.Show();
以及来自CompanySelect的XAML:
<Grid>
<ListView IsSynchronizedWithCurrentItem="True"
x:Name="CompanyListView"
SelectionMode="Single" SelectionChanged="CompanyListView_SelectionChanged">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Height" Value="30"/>
</Style>
</ListView.ItemContainerStyle>
<ListViewItem Content="{Binding Path=company_id}"></ListViewItem>
</ListView>
</Grid>