2010-12-18 18 views
0

私は途方に暮れていますSilverlightのリストボックスのカスタムスタイル

<Style x:Name="ListBoxStyle" TargetType="ListBox" > 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListBox">      
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding Name,Mode=TwoWay}" 
           Margin="5" 
           Foreground="Red"> 
        </TextBlock> 
        <TextBlock Text="{Binding Age,Mode=TwoWay}" 
           Margin="5"> 
        </TextBlock> 
       </StackPanel> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter>  
</Style> 

以下のように私は私が使ってみたデータテンプレート内ここに置かすべきことの私のリソースファイルに

<ListBox x:Name="MyList" ItemsSource="{Binding }"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

をスタイルを定義しています

<ContentPresenter Style="{StaticResource ListBoxStyle}"></ContentPresenter> 

とさえ

<ContentControl Style="{StaticResource ListBoxStyle}"></ContentControl>` 

しかし

は、プロパティ 'System.Windows.FrameworkElement.Style' に割り当てることができませんでした。このエラーを得ました。

カスタムスタイルを指定する場合は、DataTemplateタグの間に何を挿入しますか?

+0

あなたは何をしたいですか? 'ListBox'のスタイルを定義していて、それを' ContentPresenter'と 'ContentControl'に適用しようとしています。それはあってない。 – decyclone

+0

リストボックスのスタイルを別のリソースファイルに定義し、私のpage.xamlでそのスタイルを参照したいだけです。正しい方法は何ですか? – user20358

答えて

0

試してみてください。

<ListBox x:Name="MyList" ItemsSource="{Binding }"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
<StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding Name,Mode=TwoWay}" 
           Margin="5" 
           Foreground="Red"> 
        </TextBlock> 
        <TextBlock Text="{Binding Age,Mode=TwoWay}" 
           Margin="5"> 
        </TextBlock> 
       </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

このshpuldはあなたの問題を解決します。

スタイルを定義する場合、ListBoxの外観(背景、前景、...)を定義します。 あなたがここにデフォルトのスタイルを取得することができます:http://msdn.microsoft.com/en-us/library/cc278062(V = vs.95)は、ItemTemplateには(それはDataTemplateをである)、方法を定義

.aspxのリストの1つの要素のデータ表示は次のようになります(バインディングなどを使用します)。

MouseOver、Focussedなどの単一要素のスタイルを定義する場合は、ListBoxItemのスタイルを記述します。 ItemContainerStyleを使用してリストボックスに追加できます。

<ListBox ItemContainerStyle="{StaticResource YourResourceKey}"/> 
関連する問題