[英]Binding data to a data grid column
我是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
而不是ComboBox Column的方法,这样,我什至看不到列标题。
XAML:
<DataGrid Margin="44,65,52,-24" AutoGenerateColumns="False">
<DataGridTemplateColumn Header="Street Address">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Cities}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
谢谢。
DataGrid
的ItemsSource
,否则将什至没有任何项目。 DataContext
,即上下文是当前行。 因此,如果要绑定到另一个上下文,则必须显式更改绑定源 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.