0
전 WPF가 완전히 새로 왔습니다. 다음 코드 단편에는 DataGrid의 스타일/설정이 있습니다.DataGrid에 데이터가 없을 때 나타나는 기본 클래스 이름
<!--Global View Model Locator-->
<vm:ViewModelLocator x:Key="Locator"
d:IsDataSource="True" />
<!-- Main menu style -->
<Style x:Key="MainMenu" TargetType="{x:Type MenuItem}">
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="FontSize" Value="14"/>
</Style>
<!-- Data grid cell style -->
<Style x:Key="CenterCellStyle" TargetType="DataGridCell">
<Style.Setters>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style.Setters>
</Style>
<!-- DataGridColumnHeader style -->
<Style x:Key="ColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid>
<dg:DataGridHeaderBorder x:Name="HeaderBorder" BorderThickness="0"
Padding="0" SeparatorVisibility="Hidden">
<Border BorderThickness="0">
<TextBlock Text="{Binding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Border>
</dg:DataGridHeaderBorder>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- CENTER aligned DataGridColumnHeader style -->
<Style x:Key="CenterColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}"
BasedOn="{StaticResource ColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
<!-- RIGHT aligned DataGridColumnHeader style -->
<Style x:Key="RightColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}"
BasedOn="{StaticResource ColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Right"/>
</Style>
<!-- Consensus DataGrid -->
<Style x:Key="ConsensusDataGridStyle" TargetType="{x:Type DataGrid}">
<Style.Setters>
<Setter Property="ColumnHeaderStyle" Value="{StaticResource CenterColumnHeaderStyle}"/>
</Style.Setters>
</Style>
<!-- Validation Error Template -->
<DataTemplate DataType="{x:Type ValidationError}">
<TextBlock FontStyle="Italic" Foreground="Red"
HorizontalAlignment="Left" Margin="5,5" Text="{Binding Path=ErrorContent}"/>
</DataTemplate>
</ResourceDictionary>
</Application.Resources>
대응 XAML : 데이터가 데이터 그리드에 채워됩니다
<UserControl x:Class="Viewer.Views.ConsensusReadControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<DataGrid x:Name="dtGridReads" AutoGenerateColumns="False"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode ="Standard"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
ScrollViewer.IsDeferredScrollingEnabled="True"
CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="True"
ItemsSource ="{Binding}" Block.TextAlignment="Center"
AlternatingRowBackground="LightGoldenrodYellow" RowBackground="White"
CanUserAddRows="False" CanUserDeleteRows="False" FrozenColumnCount="1"
GridLinesVisibility="None" Style="{StaticResource ConsensusDataGridStyle}" FontSize="12" >
</DataGrid>
</UserControl>
하기 전에, 데이터 그리드는 "Viewer.Views.MainViewModel"라고 . 텍스트가 중앙에 배치됩니다. 클래스 이름이 화면에 출력되는 이유가 있습니까? 감사. 당신은 당신은 아마 결합 또는 뷰 모델 클래스의 (observeable) 컬렉션 속성 할
ItemsSource="{Binding}"
에서 전체 뷰 모델에 결합되기 때문이다
조금 더 설명 할 수 있습니까? 나는 아직도 붙어있다. 고마워. – Crystal
(이름에서) MainViewModel은 바인딩 할 수있는 속성을 가진 클래스라고 가정합니다. ObservableCollection 입력 된 속성이 있습니까? –
observableCollection 속성이 표시되지 않습니다. 이 클래스에서 볼 수있는 유일한 데이터는 표를 채우는 데 사용되는 dtGridReads 변수입니다. – Crystal