本文介绍了WPF中的DataGridComboBoxColumn SelectedValuePath的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在数据网格中添加一个组合框,使用访问权限从数据库中填充它。我将该列设置为值路径并在WPF中显示成员路径?

I want to add a combo box in data grid, fill it from database using access. I set this column selected value path and display member path in WPF?

推荐答案

您必须从列的元素样式访问组合框以及用于设置items source属性的元素编辑样式。
示例:

You have to access the combobox from the column's element style and the element editing style for setting the items source property.Example:

<DataGrid Name="dgMainGrid" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Id" Binding="{Binding Id, UpdateSourceTrigger=PropertyChanged}"/>
            <DataGridTextColumn Header="Description" Binding="{Binding Description, UpdateSourceTrigger=PropertyChanged}" />
            <DataGridComboBoxColumn Header="Student List" DisplayMemberPath="Name" SelectedValuePath="Id">
                <DataGridComboBoxColumn.ElementStyle>
                    <Style TargetType="{x:Type ComboBox}">
                        <Setter Property="ItemsSource" Value="{Binding StudentsList}" />
                    </Style>
                </DataGridComboBoxColumn.ElementStyle>
                <DataGridComboBoxColumn.EditingElementStyle>
                    <Style TargetType="{x:Type ComboBox}">
                        <Setter Property="ItemsSource" Value="{Binding StudentsList}" />
                    </Style>
                </DataGridComboBoxColumn.EditingElementStyle>
            </DataGridComboBoxColumn>
        </DataGrid.Columns>
    </DataGrid>

类之间的关系:

class SampleEntity : INotifyPropertyChanged
{
    DateTime date = DateTime.Now, then = DateTime.Now;

    #region Constructor

    public SampleEntity()
    {
    }

    #endregion

    #region Properties

    public int Id { get; set; }

    public string Description { get; set; }

    public List<StudentEntity> StudentsList { get; set; }

    public StudentEntity SelectedStudent { get; set; }

    #endregion

    #region Notify Property Changed

    public event PropertyChangedEventHandler PropertyChanged;

    public void NotifyPropertyChanged(string propName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
    }

    #endregion
}

class StudentEntity : INotifyPropertyChanged
{
    DateTime date = DateTime.Now, then = DateTime.Now;

    #region Constructor

    public StudentEntity()
    {
    }

    #endregion

    #region Properties

    public int Id { get; set; }

    public string Name { get; set; }

    #endregion

    #region Notify Property Changed

    public event PropertyChangedEventHandler PropertyChanged;

    public void NotifyPropertyChanged(string propName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
    }

    #endregion
}

这篇关于WPF中的DataGridComboBoxColumn SelectedValuePath的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 22:24