2011-06-22 20 views
0

私はいくつかのコレクションプロパティを持つユーザーコントロールを持っています。それらは設計時にプロパティテーブルに表示され、楕円をクリックするとコレクションプロパティエディタが表示されます。これまでのところすべてが機能しています。wpf usercontrol異なる種類のコレクションプロパティ

データグリッドで列コレクションプロパティでDataGridTextColumn、DataGridCheckBoxColumnなどを選択する方法と同じように、さまざまな型を使用できるコレクションプロパティを持つコントロールがあります。私は抽象基本クラス型のパブリックブラウズ可能なプロパティを作成することでこれを達成するのは簡単なことだと思っていました。しかしそれは働かない。私が基本クラスを非抽象クラスにすると、それは表示されますが、そのリストに複数の型を表示することはできません。どのように私はそれを動作させるには?

答えて

0

質問を正しく理解している場合は、DataTemplateSelectorの実装と、レンダリングするプロパティの種類に応じたDataTemplateリソースのセットが必要です。これらのライン上の

何か:にClassAとClassBのは、カスタムタイプです

public class TemplateSelector:DataTemplateSelector 
{ 
    public override DataTemplate SelectTemplate 
           (object item,DependencyObject container) 
    { 
     var element = container as FrameworkElement; 

     if(element is ClassA) 
      return element.FindResource("classATemplate") as DataTemplate; 

     if(element is ClassB) 
      return element.FindResource("classBTemplate") as DataTemplate; 

     return null; 
    } 
} 

。交代インデックスの

、あなたはこれらのラインにコードの

<Style.Triggers> 
    <Trigger Property="ItemsControl.AlternationIndex" Value="0"> 
     <Setter Property="Background" Value="LightBlue"></Setter> 
    </Trigger> 
    <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
     <Setter Property="Background" Value="LightGreen"></Setter> 
    </Trigger> 
</Style.Triggers> 
+0

おかげでスタイルを作成することができます!私はこれが正しい方向に向かっていると思う。ビジュアルスタジオコレクションのプロパティエディタの選択項目ボックスに代替エントリを作成するにはどうすればよいですか? – Mike

+0

あなたの質問を正しく理解していれば、交互のスタイルが欲しいですか?このためにItemsControl.AlternationIndexを使用することができます。これがどのように行われたかを示すために投稿を編集しました。 –

+0

あなたの問題のメイトにこの回答がありますか? –

関連する問題