The following example demonstrates how to use an unbound column to display a button that, when clicked, will display an editor through which the corresponding data item can be edited.
XAML |
Copy Code |
---|---|
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"> <Grid.Resources> <xcdg:DataGridCollectionViewSource x:Key="cvs_products" Source="{Binding Source={x:Static Application.Current}, Path=Products}" /> </Grid.Resources> <xcdg:DataGridControl x:Name="OrdersGrid" ItemsSource="{Binding Source={StaticResource cvs_products}}"> <xcdg:DataGridControl.Columns> <xcdg:UnboundColumn FieldName="EditRowColumn" Width="30" MinWidth="30" MaxWidth="30"> <xcdg:UnboundColumn.CellContentTemplate> <DataTemplate> <Button Click="Button_Click" Content="..." /> </DataTemplate> </xcdg:UnboundColumn.CellContentTemplate> </xcdg:UnboundColumn> <xcdg:Column FieldName="Photo" Visible="False" /> </xcdg:DataGridControl.Columns> </xcdg:DataGridControl> </Grid> |
The following code provides the implementation of the Button_Click event. The ProductsEditorWindow derives from Window and allows the data item to be edited. The code for the ProductsEditorWindow is not provided.
VB.NET |
Copy Code |
---|---|
Private Sub Button_Click( ByVal sender As Object, ByVal e As RoutedEventArgs ) Dim cell As Cell = Cell.FindFromChild( TryCast( sender, DependencyObject ) ) Dim editor As New ProductsEditorWindow( TryCast( DataGridControl.GetParentDataGridControl( cell ).GetItemFromContainer( cell.ParentRow ), DataRowView ) ) editor.ShowDialog() End Sub |
C# |
Copy Code |
---|---|
private void Button_Click( object sender, RoutedEventArgs e ) { Cell cell = Cell.FindFromChild( sender as DependencyObject ); ProductsEditorWindow editor = new ProductsEditorWindow( DataGridControl.GetParentDataGridControl( cell ).GetItemFromContainer( cell.ParentRow ) as DataRowView ); editor.ShowDialog(); } |