public class DataGridControl : DataGrid { static DataGridControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(Da taGridControl), new FrameworkPropertyMetadata(typeof(DataGridControl)) ); } }
<Setter Property="RowHeaderStyle"> <Setter.Value> <Style TargetType="{x:Type DataGridRowHeader}"> <Setter Property="Background" Value="White" /> </Style> </Setter.Value> </Setter> <Setter Property="CellStyle"> <Setter.Value> <Style TargetType="{x:Type DataGridCell}"> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="BorderThickness" Value="0" /> </Trigger> </Style.Triggers> </Style> </Setter.Value> </Setter> <Setter Property="RowStyle"> <Setter.Value> <Style TargetType="{x:Type DataGridRowHeader}"> <Setter Property="Background" Value="White" /> </Style> </Setter.Value> </Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type CustomControl:DataGridControl}"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style>
و اینطوری هم استفاده کردم. xmlns:CustomControl="clr-namespace:Plugins.CustomControl
<CustomControl:DataGridControl x:Name="DG" Grid.Row="1" Grid.RowSpan="2"> <DataGrid.Columns> <DataGridTextColumn Header="Story" Binding="{Binding Story}" Width="auto"/> <DataGridTextColumn Header="Diaphragm" Binding="{Binding ...}" Width="auto"/> <DataGridTextColumn Header="Load Case" Binding="{Binding ...}" Width="auto"/> <DataGridTextColumn Header="Ux (CM)" Binding="{Binding .., Converter={StaticResource decimalPrecisionConverter}}" Width="auto"/> <DataGridTextColumn Header="Uy (CM)" Binding="{Binding ..., Converter={StaticResource decimalPrecisionConverter}}" Width="auto"/> <DataGridTextColumn Header="Point" Binding="{Binding Point}" Width="auto"/> <DataGridTextColumn Header="X (CM)" Binding="{Binding X, Converter={StaticResource decimalPrecisionConverter}}" Width="auto"/> <DataGridTextColumn Header="Y (CM)" Binding="{Binding Y, Converter={StaticResource decimalPrecisionConverter}}" Width="auto"/> <DataGridTextColumn Header="Z (CM)" Binding="{Binding Z, Converter={StaticResource decimalPrecisionConverter}}" Width="auto"/> <DataGridTextColumn Header="Drift(X)" Binding="{Binding ..., Converter={StaticResource decimalPrecisionConverter}}" Width="auto"/> <DataGridTextColumn Header="Drift(Y)" Binding="{Binding ..., Converter={StaticResource decimalPrecisionConverter}}" Width="auto"/> </DataGrid.Columns> </CustomControl:DataGridControl>
اما نمایشش در ویژوال استودیو اینطوریه: DataGrid.JPG در زمان اجرا هم همینطوریه. itemsource را پر هم می کنم. خطا نمیده اما نمایش نمیده.(با دیتاگرید عادی کاملا برنامه درسته) آیا نکته خاصی داره که انجام ندادم؟ ممنون میشم راهنماییم کنید