I'm trying to learn WPF and I'm currently creating a grid and binding data to it. Currently text column data binds ok but when doing a combobox it displays no data in the list.
public class MainWindowViewModel
{
public BindableCollection<feed> feeder { get; set; }
public ObservableCollection<cboData> cboDatas { get; set; }
public MainWindowViewModel()
{
feeder = new BindableCollection<feed>();
feed feed1 = new feed();
feed1.feedId = 1;
feed1.name = "MDPT1";
feed1.type = "type1";
feed1.date = "03/02/1997";
feeder.Add(feed1);
feed feed2 = new feed();
feed2.feedId = 2;
feed2.name = "MDPT2";
feed2.type = "type1";
feed2.date = "03/04/1987";
feeder.Add(feed2);
cboDatas = new ObservableCollection<cboData>
{
new cboData {id = 1, name = "DD 1"},
new cboData {id = 2, name = "DD 2"}
};
}
public class cboData
{
public int id { get; set; }
public string name { get; set; }
}
}
<DataGrid x:Name="feeder" HorizontalAlignment="Center" Height="106" Margin="0,302,0,0" VerticalAlignment="Top" Width="646" RenderTransformOrigin="0.5,0.5" AlternatingRowBackground="Gray" CanUserAddRows="False"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Full Name" Binding="{Binding Path=name}" />
<DataGridCheckBoxColumn Header="Tick" />
<DataGridTemplateColumn Header="COMBO BOX">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding Path=cboDatas, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
DisplayMemberPath="name"/>
<!--
SelectedItem="{Binding Path= feedid, Mode=TwoWay}"
SelectedValue="{Binding feeder}"
SelectedValuePath="type"
-->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>...
Can anyone see what i'm doing wrong with the bindings?
Also is it possible to dynamically create a grid column structure in code?
Thanks in advance for any help/pointers