2009-05-27 15 views
6

私はツールキットを持っています:DataGrid(Codeplexから)。視覚的なスタイリング、いくつかの他のトリガーのための 1つの要素に複数のXAMLスタイルを適用するにはどうすればよいですか?

  • 1、などのためのViewModelに
  • 1内の変数に基づいて、オンとオフを切り替えるため

    • 1:

      多くの異なるスタイルを持っているし始めています

    これらはすべての大きなビッグスタイルにある必要がありますか、それを行う唯一の方法ですか?または、複数のスタイルを持っていて、必要に応じて添付できますか?とにかくこれを行うには、そうすることができます。 コードスワップスタイル

    スタイル:

    <Style x:Key="CodePlexDataGridSwapper" TargetType="toolkit:DataGrid"> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding WhichGrid}" Value="Infragistics"> 
          <Setter Property="toolkit:DataGrid.Visibility" Value="Collapsed"/> 
         </DataTrigger> 
        </Style.Triggers> 
    </Style> 
    
    <Style x:Key="ToolkitDataGridLayout" TargetType="toolkit:DataGrid"> 
        <Setter Property="Background" Value="Yellow"/> 
    </Style> 
    

    擬似コード:

    <toolkit:DataGrid 
        Style="{StaticResource CodePlexDataGridSwapper, ToolkitDataGridLayout}" 
        ItemsSource="{Binding Customers}"/> 
    
  • 答えて

    11

    あなたはスタイルクラスのBasedOn propertyを見てみたいことがあります。基本的には、あるスタイルを別のスタイルから継承することができます。 '子'スタイルには、親の子をオーバーライドしていない限り、親の子からのすべてのセッターとトリガーがあります。さらに、独自のセッターとトリガーを持っています。

    多分、この情報はあなたに役立つでしょう。

    +1

    +1これはやや役立ちますが、まだ2つ以上の別々のスタイルセットを適用/マージするのに役立ちません。不幸にも、単純継承の半継承を除いて、それらのうちの多くを適用する方法はない可能性が非常に高いです。 – quetzalcoatl

    +0

    答えがあります:http://stackoverflow.com/questions/16096/how-to-apply-multiple-styles-in-wpf –

    関連する問題