В настоящее время я изучаю привязку данных в C # WPF и пытаюсь установить свойство ItemsSource
для DataGridComboBoxColumn
.
У меня есть материал класса:
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;
}
}
И Datagrid:
<DataGrid x:Name="dg" ItemsSource="{Binding}" AutoGenerateColumns="false">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Name" SelectedItemBinding="{Binding name}"/>
</DataGrid.Columns>
</DataGrid>
SelectedItemBinding
уже работает, но сейчас я пытаюсь установить ItemsSource
.
Я хочу все имена Материаловхранится в загруженных материалах.
Я попробовал следующее:
//K Refers to The Namespace the Material-Class is in
ItemsSource="{Binding Source={x:Static K:Material.loadedMaterials}, Path=name}
Но вместо получения списка всех имен используется список, который используется в раскрывающемся списке, - это каждый символ, который имеет имя первого материала.,(«T», «E», «S», «T», «1»)
Есть ли способ получить все name
из всех Materials
илиНужно создать дополнительный список, чтобы достичь этого?