尝试绑定到 WPF 中的集合,我得到了以下结果:

XAML:

<toolkit:DataGrid Name="dgPeoples"/>

CS:

namespace DataGrid
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1
    {
        private readonly ObservableCollection<Person> personList = new ObservableCollection<Person>();

        public Window1()
        {
            InitializeComponent();

            personList.Add(new Person("George", "Jung"));
            personList.Add(new Person("Jim", "Jefferson"));
            personList.Add(new Person("Amy", "Smith"));

            dgPeoples.ItemsSource = personList;
        }
    }
}

可能没有必要,但这里是 Person 类:

namespace DataGrid
{
    public class Person
    {
        public string fName { get; set; }
        public string lName { get; set; }

        public Person(string firstName, string lastName)
        {
            fName = firstName;
            lName = lastName;
        }
    }
}

但我真正需要的是这个 数据网格组合框列 的。以下是我的修改:

XAML:

<toolkit:DataGrid Name="dgPeoples" Grid.Row="0" AutoGenerateColumns="False">
    <toolkit:DataGrid.Columns>
        <toolkit:DataGridComboBoxColumn Width="5*"/>
        <toolkit:DataGridComboBoxColumn Width="5*"/>
    </toolkit:DataGrid.Columns>
</toolkit:DataGrid>

C#:

保持不变。

问题 现在我得到了空的组合框列!我有什么想法可以让它发挥作用吗?

从长远来看,我需要两种方式绑定,其中双击名字列会弹出组合框,其中包含集合中所有可能的名字的选项(即乔治、吉姆和艾米)。

感谢任何帮助!

有帮助吗?

解决方案

我只是想,当涉及到WPF工具包Datagrid的给你指向的最佳参考之一,它来自的塞缪尔·莫拉我下载了15个样品,并妥善保管,我给你的链接,因为你会发现Datagrid的岗位大系列,比我任何参考更有用可以给你的快速答复

其他提示

DataGrid 需要具有 HeaderItemsSource 属性设置:

<toolkit:DataGrid Name="dgPeoples" Grid.Row="0" AutoGenerateColumns="False">
    <toolkit:DataGrid.Columns>
        <toolkit:DataGridComboBoxColumn Width="5*"
            Header="First Name"
            ItemsSource="{Binding Path=fName}"/>
        <toolkit:DataGridComboBoxColumn Width="5*"
            Header="First Name"
            ItemsSource="{Binding Path=lName}"/>
    </toolkit:DataGrid.Columns>
</toolkit:DataGrid>

使用该工具包时,该工具包的某个版本似乎存在问题 DataGridComboBoxColumn.ItemsSource: DataGridComboBoxColumn.ItemsSource 不起作用.

然而,有一个解决方法是为 将组合框与 WPF DataGrid 结合使用. 。最后,你可能想看一下这篇文章 DataGrid 带来更多乐趣 玛格丽特·帕森斯也是如此。

编辑
现在我不太确定上面的代码是否有效。我凭记忆做到了这一点,并将其他链接作为资源引用。

看一下这个 SO 帖子,它似乎解决了这个问题: 绑定 DataGridComboBoxColumn.ItemsSource 时出现问题

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top