Ich habe ein benutzerdefiniertes DataGrid erstellt, in dem Spalten von Comboboxen definiert sind. Ich habe versucht, den Itemsource-Wert der Combobox zur Verfügung zu stellen, aber er füllt Daten in Comboboxen zur Laufzeit nicht auf. Hier ist der C# - und XAML-Code.ComboBox zeigt keine verbindlichen Daten in einer DataGridTemplateColumn
public MainWindow()
{
InitializeComponent();
datagrid_additionalinfo.Items.Add(new object());
datagrid_additionalinfo.DataContext = new ComboboxViewModel();
}
public class ComboboxViewModel
{
public List<string> Members { get; set; }
public List<string> Disciplines { get; set; }
public ComboboxViewModel()
{
this.Members = new List<string>
{
"Ali", "Mubashar", "Muffassir", "Nitin"
};
this.Disciplines = new List<string>
{
"Architecture", "Mechanical", "Structure"
};
}
}
<DataGrid Name="datagrid_additionalinfo" Margin="20,0,20,0" IsReadOnly="False" SelectionMode="Single" CanUserAddRows="True" AutoGenerateColumns="False" SelectionUnit="Cell" >
<DataGrid.Columns>
<DataGridTemplateColumn Header="Discipline" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="200" ItemsSource="{Binding Disciplines}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Members" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="200" ItemsSource="{Binding Members}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Bitte korrigiert mich, wenn ich etwas fehlt bin. Vielen Dank.
Vielen Dank für den XAML-Code teilen. Ich habe diese Zeile wirklich übersehen, als ich den Code hier eingefügt habe. Plus ich kann nicht datagrid_additionalinfo.Items.Add (neue ComboboxViewModel()); Code. Weil mein Datagrid Textfelder enthält, damit der Benutzer Daten eingeben kann. Es ist ein bisschen kompliziert. Haben Sie irgendwelche Lösungen, um die Daten in XAML zu binden? –
Ja, siehe bearbeitete Antwort – Netstep
Vielen Dank, es hat funktioniert :-) –