2014-04-25 3 views
2

내가 Silverlight5 초보자이고 내가 아래 (내가 제대로 그렇게 같다 할 xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"):Xaml : 중첩 된 속성이 지원되지 않습니다. DataGridTemplateColumn.CellTemplate.

Error Nested properties are not supported: DataGridTemplateColumn.CellTemplate. 
Error The attachable property 'CellTemplate' was not found in type 'DataGridTemplateColumn'. 
Error Unexpected PROPERTYELEMENT in parse rule PropertyElement ::= . PROPERTYELEMENT Content? ENDTAG.. 

그리고 대구 assembmy 언급 한 바와 같이 XAML 코드에 지적 동일 라인있는 오류가 아래 :

<data:DataGrid Grid.Row="1" x:Name="gridVersions" ItemsSource="{Binding ProgramVersion }" IsReadOnly="True" AutoGenerateColumns="False"> 
     <data:DataGrid.Columns> 
      <data:DataGridTextColumn Header="Version" Binding="{Binding Version}" Width="2*"></data:DataGridTextColumn> 
      <data:DataGridTextColumn Header="Live" Binding="{Binding Live}" Width="2*"></data:DataGridTextColumn> 
      <data:DataGridTextColumn Header="Date modif." Binding="{Binding ModifDate}" Width="3*"></data:DataGridTextColumn> 
      <data:DataGridTextColumn Header="..." Binding="{Binding Path=More}" Width="*"></data:DataGridTextColumn> 
      **<data:DataGridTemplateColumn.CellTemplate>** //Error prone line 
       <DataTemplate> 
        <Button>More Info 
         <ToolTipService.ToolTip> 
          <Border Background="White"> 
           <Grid Width="Auto"> 
            <Grid.RowDefinitions> 
             <RowDefinition Height="20"/> 
             <RowDefinition Height="20"/> 
             <RowDefinition Height="20"/> 
             <RowDefinition Height="20"/> 
             <RowDefinition Height="20"/> 
             <RowDefinition Height="20"/> 
             <RowDefinition Height="20"/> 
             <RowDefinition Height="20"/> 
            </Grid.RowDefinitions> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="100"/> 
             <ColumnDefinition Width="*"/> 
            </Grid.ColumnDefinitions> 

            <TextBlock Grid.Row="0" Grid.Column="0" Text="Name" /> 
            <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}"/> 



            <TextBlock Grid.Row="1" Grid.Column="0" Text="Author" /> 
            <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Author}"/> 

            <TextBlock Grid.Row="2" Grid.Column="0" Text="Date of Creation" /> 
            <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding DateCreation}"/> 

            <TextBlock Grid.Row="3" Grid.Column="0" Text="Company" /> 
            <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding Company}"/> 

            <TextBlock Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="1" Text="Description"/> 
            <TextBox Grid.Row="5" Grid.Column="0" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" Grid.ColumnSpan="2" Text="{Binding Description}"/> 

            <TextBlock Grid.Row="6" Grid.Column="0" Text="DocUrl" /> 
            <TextBlock Grid.Row="6" Grid.Column="1" Text="{Binding DocUrl}"/> 

            <TextBlock Grid.Row="7" Grid.Column="0" Text="ProgramId" /> 
            <TextBlock Grid.Row="7" Grid.Column="1" Text="{Binding ProgramId}"/> 

           </Grid> 
          </Border> 
         </ToolTipService.ToolTip> 
        </Button> 
       </DataTemplate> 
      </data:DataGridTemplateColumn.CellTemplate> 
     </data:DataGrid.Columns> 
    </data:DataGrid> 
</Grid> 

답변

3

당신 제 실제 DataGridTemplateColumn 요소를 정의 할 필요가 이런 요소 및 하위 요소가있을 때 XAML 구문에서

<data:DataGrid.Columns> 
    <!-- Columns ... --> 
    <data:DataGridTemplateColumn> 
     <data:DataGridTemplateColumn.CellTemplate> 

     </data:DataGridTemplateColumn.CellTemplate> 
    </data:DataGridTemplateColumn> 
</data:DataGrid.Columns> 

참고한다 :

<a> 
    <a.b> 
     content 
    </a.b> 
</a> 

다음이이 설정 수단 속성 "b"은 a이고 "내용"입니다. 요소가이 형태의 경우 :

<a> 
    <b.c> 
    </b.c> 
</a> 

또한 합법적이지만 객체의 클래스 ab의 부착 종속성 c 속성을 설정하는 것을 의미 할 수있다.

부착 가능한 특성 'CellTemplate가' 'DataGridTemplateColumn'

XAML 파서는 속성 DataGridTemplateColumn.CellTemplate을 (첨부하려는 생각 유형에서 찾을 수 없습니다 : 당신이 오류 메시지가 표시되는 이유 "bc")를 요소 DataGrid.Columns ("a")에 연결합니다.