2011-08-23 3 views
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}" 

에서 전체 뷰 모델에 결합되기 때문이다

답변

0

.

+0

조금 더 설명 할 수 있습니까? 나는 아직도 붙어있다. 고마워. – Crystal

+0

(이름에서) MainViewModel은 바인딩 할 수있는 속성을 가진 클래스라고 가정합니다. ObservableCollection 입력 된 속성이 있습니까? –

+0

observableCollection 속성이 표시되지 않습니다. 이 클래스에서 볼 수있는 유일한 데이터는 표를 채우는 데 사용되는 dtGridReads 변수입니다. – Crystal

관련 문제