I need to add a checkbox (among other controls) to a gridview generated by code. I am new to programming and built a program in WPF without any databinding or MVVM and I need to create a template of an Avalon LayoutDocument with a gridview that contains a checkbox column in addition to other standard entries. The contents of which are edited by code other AvalonDock Panes.
The following is the XAML that I want to replicate:
<xcad:LayoutDocument x:Name="layDocSubProjectTemplate" Title="SubProject1" CanClose="True">
<Grid x:Name="TestGrid" >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ListView x:Name="lviewSubWalls" Grid.Row="0" Grid.Column="1" Width="Auto" Grid.RowSpan="1">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Name" Width="Auto"/>
<GridViewColumn Header="Product" Width="Auto"/>
<GridViewColumn Header="Colour" Width="Auto"/>
<GridViewColumn Header="Sq' Face" Width="Auto"/>
<GridViewColumn Header="Linear feet" Width="Auto"/>
<GridViewColumn Header="rows" Width="Auto"/>
<GridViewColumn Header="Pallets/bundles" Width="Auto"/>
<GridViewColumn Header="Hours" Width="Auto"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
<ListView x:Name="lviewSubPatio" Grid.Row="1" Grid.Column="1" Width="AUto" Grid.RowSpan="1">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate >
<CheckBox Width="Auto"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Name" Width="Auto"/>
<GridViewColumn Header="Product" Width="Auto"/>
<GridViewColumn Header="Colour" Width="Auto"/>
<GridViewColumn Header="Area" Width="Auto"/>
<GridViewColumn Header="rows" Width="Auto"/>
<GridViewColumn Header="Pallets/bundles" Width="Auto"/>
<GridViewColumn Header="Hours" Width="Auto"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
</xcad:LayoutDocument>
And this is the click event to create a new LayoutDocument with the same structure.
private void lblNewSubProject_MouseDown(object sender, MouseButtonEventArgs e)
{
int count = MyLayoutDocumentPane.ChildrenCount;
System.Diagnostics.Debug.WriteLine(count);
Xceed.Wpf.AvalonDock.Layout.LayoutDocument newSub = new Xceed.Wpf.AvalonDock.Layout.LayoutDocument();
//When run only one of the existing LayoutDocuments has any content!!!
//Hence the need for some sort of template
newSub.Content = layDocSubProjectTemplate.Content;
newSub.CanClose = true;
newSub.Title = "SubProject" + count;
}
I realize MVVM would be ideal for this but I am too far along to redo my program (unless I can just do the layoutdocuments via MVVM... is that a possibility?)