【发布时间】:2016-11-13 20:00:05
【问题描述】:
我是 WPF 新手,今天刚学习数据绑定,所以我可能有一些基本错误。
目标: 我想要数据网格中的一列,其功能类似于组合框列,显示字符串列表中的所有项目。
XAML:
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="CitiesColumn" ItemsSource="{Binding Cities}/">
</DataGrid.Columns>
</DataGrid>
代码隐藏:
ObjectModel 类型:
class CitiesModel
{
private List<string> _Cities;
public List<string> Cities { get { return _Cities; } set { _Cities = value ; } }
public CitiesModel()
{
Cities = new List<string>
{
"Berlin",
"Rome",
"Paris",
"Barcelona"
};
}
}
window.cs 文件:
public partial class MainWindow : Window
{
CitiesModel Cm;
public MainWindow()
{
Cm = new CitiesModel();
DataContext = Cm;
InitializeComponent();
}
}
它根本没有显示任何数据,甚至网格中的单元格也没有。 当我在常规组合框上尝试相同的代码时,它显示了所有数据
XAML:
<ComboBox ItemsSource="{Binding Cities}"/>
我在网上搜索并看到了一种使用DataGridTemplateColumn 的方法
而不是组合框列,这样我什至看不到列标题。
XAML:
<DataGrid Margin="44,65,52,-24" AutoGenerateColumns="False">
<DataGridTemplateColumn Header="Street Address">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Cities}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
谢谢。
【问题讨论】:
-
关于 ComboBoxColumn ItemsSource 绑定的几十个问题重复...
-
你还没有绑定 DataGrid 的 ItemsSource。
标签: c# wpf datagrid datagridcomboboxcolumn