【发布时间】:2011-06-29 22:38:40
【问题描述】:
我有一个非常简单的绑定,但我看到的问题是,我看到的不是显示三个公司(company_list 是一个列表,其中 Company 包含要绑定的 company_id),而是弹出窗口company_list 中只有 first company_id。我有其他似乎工作正常的绑定,在其他一些情况下,我看到我使用了 ItemSource 而不是 DataContext,但是当我使用它时,我得到“使用 ItemsSource 之前项目集合必须为空”。我在 stackoverflow、msdn 和其他地方广泛搜索了这个问题的简单答案,并且看到了大多数我无法理解/应用的非常复杂的解决方案。
当我的窗口出现时,它有:
A公司
它应该在哪里:
A公司
公司B
公司C
这是 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>
【问题讨论】: