C # WPF - привязка данных DataGridComboboxColumn SelectedValueBinding - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь привязать данные к DataGridComboBoxColumn.

Мне уже удалось связать ItemsSource, но привязанное значение не будет выбрано, вместо этого в ComboBox просто ничего не выбрано.

DataGrid:

<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>

Материал-класс:

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 загружается иТекстовое поле с той же границей данных показывает его правильно, но ComboBox пуст.

Я ожидаю, что TEST1 будет выбран и отображен в ComboBox.

enter image description here

1 Ответ

0 голосов
/ 29 ноября 2018

Вы должны установить SelectedValuePath на вашем DataGridComboBoxColumn

<DataGridComboBoxColumn Header="Name" SelectedValueBinding="{Binding name}" ItemsSource="{Binding Source={x:Static K:Material.loadedMaterials}}" DisplayMemberPath="name" SelectedValuePath="name"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...