WPF自定义控件datagrid - 创建列

时间:2016-10-10 11:06:56

标签: c# wpf visual-studio xaml datagrid

我是WPF新手,我想在此控件中创建带有多个控件的datagrid自定义控件。

我的自定义datagrid xaml:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Bank"
   xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit">

    <Style TargetType="{x:Type local:EDataGrid}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:EDataGrid}">
                    <Border Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="500*" />
                                <RowDefinition Height="100*" />
                            </Grid.RowDefinitions>
                            <local:FilteringDataGrid x:Name="datagrid" Grid.Row="0"  ItemsSource="{TemplateBinding ItemsSource}"></local:FilteringDataGrid>
                            <Grid Grid.Row="1"  Height="26" Width="208">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="25*"/>
                                    <ColumnDefinition Width="25*"/>
                                    <ColumnDefinition Width="50*"/>
                                    <ColumnDefinition Width="20*"/>
                                    <ColumnDefinition Width="50*"/>
                                    <ColumnDefinition Width="25*"/>
                                    <ColumnDefinition Width="25*"/>
                                </Grid.ColumnDefinitions>
                                <Button x:Name="ButtonFirstPage" Grid.Column="0" Tag="First" Content="&lt;&lt;" HorizontalAlignment="Stretch"  VerticalAlignment="Stretch"  BorderThickness="1,1,0,1" />
                                <Button x:Name="ButtonPreviousPage" Grid.Column="1" Tag="Previous" Content="&lt;" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
                                <Button x:Name="ButtonNextPage" Grid.Column="5" Tag="Next" Content="&gt;" HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" />
                                <Button x:Name="ButtonLastPage" Grid.Column="6" Tag="Last" Content="&gt;&gt;" HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" BorderThickness="0,1,1,1"/>
                                <TextBox x:Name="TbPage" HorizontalAlignment="Stretch" VerticalContentAlignment="Center" Grid.Column="2"  TextAlignment="Right"   TextWrapping="Wrap" Text="1" VerticalAlignment="Stretch"  BorderThickness="0,1" />
                                <TextBox x:Name="TbOfPage" VerticalContentAlignment="Center" Grid.Column="4" HorizontalAlignment="Stretch" TextWrapping="Wrap" VerticalAlignment="Stretch"  Text="1" BorderThickness="0,1" />
                                <TextBox x:Name="TbPage_Copy" VerticalContentAlignment="Center"  Grid.Column="3" TextAlignment="Center" HorizontalAlignment="Stretch"   TextWrapping="Wrap" Text="z" VerticalAlignment="Stretch"  BorderThickness="0,1"/>
                            </Grid>
                        </Grid>
                    </Border>
                </ControlTemplate>
            </Setter.Value>


        </Setter>
    </Style>
</ResourceDictionary>

我希望在主窗口中使用此数据网格(即指定列):

<local:EDataGrid x:Name="dataGrid" " AutoGenerateColumns="False" >
   <wp:DataGrid.Columns>
       <wp:DataGridTextColumn Header="Id" Binding="{Binding Id}"/>
       <wp:DataGridTextColumn Header="Type" Binding="{Binding Type}"/>
   </wp:DataGrid.Columns>
</local:EDataGrid>

当我在本例中使用它时,datagrid会自动生成列,并且我希望在datagrid中只有这两个指定的列。

0 个答案:

没有答案