繁体   English   中英

将数据绑定到数据网格列

[英]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>

谢谢。

  1. 绑定DataGridItemsSource ,否则将什至没有任何项目。
  2. 数据网格列中的绑定具有与网格本身不同的DataContext ,即上下文是当前行。 因此,如果要绑定到另一个上下文,则必须显式更改绑定源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM