Xceed Toolkit Plus for WPF v5.0 Documentation
In This Topic
    Defining Unbound Columns
    In This Topic

    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();
    }