2016-06-15 13 views
0

テンプレート内にGridViewを持つWinRT/UWPでテンプレートコントロールを作成しました。グリッドビューのアイテムのDataTemplateを格納するItemTemplate依存プロパティを作成しました。コントロールが他のページで再利用されたときに、各実装でアイテムテンプレートを変更できるようになりました。Generic.xamlからのテンプレートコントロールのデフォルトスタイルの適用

しかし、現在のコードでは、コントロールが正しく読み込まれますが、スタイリングは実装されていません。

ここに私のGeneric.xamlコードです:

<Style TargetType="ctrl:CustomGridView"> 
    <Setter Property="ItemTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <Grid> 
        <Grid Background="Red"> 
          <TextBlock Text="{Binding Name, Mode=OneWay}" Foreground="White" TextAlignment="Center"/> 
        </Grid> 
       </Grid> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ctrl:CustomGridView"> 
       <Grid> 
        <ContentPresenter x:Name="templateProxy" Width="{TemplateBinding ItemWidth}" Height="{TemplateBinding ItemHeight}" ContentTemplate="{TemplateBinding ItemTemplate}" Visibility="Collapsed" /> 
        <GridView x:Name="gridView" ItemsSource="{TemplateBinding ItemsSource}" 
           SelectionMode="None" IsItemClickEnabled="True" IsSwipeEnabled="False" IsTabStop="False"> 
         <GridView.ItemTemplate> 
          <DataTemplate> 
           <ContentPresenter Width="{Binding Width, ElementName=templateProxy}" Height="{Binding Height, ElementName=templateProxy}" ContentTemplate="{TemplateBinding ItemTemplate}" /> 
          </DataTemplate> 
         </GridView.ItemTemplate> 
        </GridView> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

目標はデフォルトのものであることをGeneric.xamlでItemTemplateセットを作成し、コントロールのさまざまな実装でそれを変更することができるようにすることですが。ここで

ItemTemplateプロパティがCustomGridView.csファイルで定義されている方法は次のとおりです。

public static readonly DependencyProperty ItemTemplateProperty = 
     DependencyProperty.Register("ItemTemplate", typeof(DataTemplate), typeof(PatientGridView), new PropertyMetadata(null)); 

    public DataTemplate ItemTemplate 
    { 
     get { return (DataTemplate)GetValue(ItemTemplateProperty); } 
     set { SetValue(ItemTemplateProperty, value); } 
    } 

は、私はデフォルトのItemTemplateにをロードするためにCustomGridView.csに何かすべきことはありますか?私は何か不足していますか?

必要に応じて追加コードを提供します。

ありがとうございました!

答えて

-1

あなたはこのコードを含める必要があります:あなたのAssemblyInfo.csへ

[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)] 

はThemeInfoがインテリセンスに表示されない

+0

を提出。これはUWP(Windows 10)アプリケーションです。 –

関連する問題