C# WPF - 数据绑定(bind) DataGridComboboxColumn SelectedValueBinding

标签 c# wpf xaml data-binding

我正在尝试将数据绑定(bind)到 DataGridComboBoxColumn。

我已经设法绑定(bind)了 ItemsSource,但是绑定(bind)的值不会被选中,而是 ComboBox 什么都没有选中。

数据网格:

<DataGrid x:Name="dg" ItemsSource="{Binding}" AutoGenerateColumns="false">
    <DataGrid.Columns>
        <DataGridComboBoxColumn Header="Name" SelectedValueBinding="{Binding name}" ItemsSource="{Binding Source={x:Static K:Material.loadedMaterials}}" DisplayMemberPath="name"/>
        <DataGridTextColumn Header="Name2" Binding="{Binding name}"/>
    </DataGrid.Columns>
</DataGrid>

Material 等级:

public class Material {
    public static List<Material> loadedMaterials;

    static Material() {
        loadedMaterials = new List<Material>();

        loadedMaterials.Add(new Material("TEST1", "", ""));
        loadedMaterials.Add(new Material("TEST2", "", ""));
        loadedMaterials.Add(new Material("TEST3", "", ""));
    }

    public string name { get; set; }
    public string name2 { get; set; }
    public string name3 { get; set; }

    public Material(string n, string n2, string n3) {
        name = n;
        name2 = n2;
        name3 = n3;
    }
}

主窗口:

public partial class MainWindow : Window {
    public System.Collections.ObjectModel.ObservableCollection<Material> mat;

    public MainWindow() {
        InitializeComponent();

        mat = new System.Collections.ObjectModel.ObservableCollection<Material>();
        mat.Add(new Material("TEST1", "TEST1", "TEST1"));

        dg.DataContext = mat;
    }
}

正如您在此处看到的,DropDown 已加载,具有相同数据绑定(bind)的 Textbox 正确显示,但 ComboBox 为空。

我期望 TEST1 被选中并显示在 ComboBox 中。

enter image description here

最佳答案

您必须在 DataGridComboBoxColumn 上设置 SelectedValuePath

<DataGridComboBoxColumn Header="Name" SelectedValueBinding="{Binding name}" ItemsSource="{Binding Source={x:Static K:Material.loadedMaterials}}" DisplayMemberPath="name" SelectedValuePath="name"/>

关于C# WPF - 数据绑定(bind) DataGridComboboxColumn SelectedValueBinding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53540480/

相关文章:

c# - 带有 Html.ActionLink 的绝对(外部)URL

c# - 修改 IEnumerable foreach 与 List<T>.ForEach 中的结构

javascript - 如何将 .NET URL 正则表达式转换为 Javascript URL 正则表达式?

c# - 是否可以通过容器/包装器在 WPF 表单中托管 WinForm 表单?

c# - 绑定(bind)运行次数可变的 RichTextBox

c# - 标签 MVVM 中显示的 WPF 百分比状态

c# - 多行文本框 - 在回发开始时添加空格

c# - Wpf-Datagrid 和 ObservableCollection-AutoGenerateColumns?

.net - 如何在WPF中暂停和恢复布局?

c# - Windows Phone 7 : How to parse Bezier Path string like in XAML?