2016-04-13 9 views
0

これは私のxamlでlistViewをフォーマットしたものです。それは動作しますが、これを適用する必要があるように、複雑なロジックを追加する必要があります。ListView xamlではなくcodebehindでItemsPanelを変更する方法

<ListView.ItemsPanel> 
    <ItemsPanelTemplate> 
     <WrapPanel Orientation = "Horizontal" Width = "250" Background = "{x:Null}" VerticalAlignment = "Top"></WrapPanel> 
    </ItemsPanelTemplate> 
</ListView.ItemsPanel> 

ここで、上記のコードをコードの背後に適用する必要があります。

---ティーノBordinためEDIT ---

私が誤解しているものを教えてください:

1aに。私は私のリストビューでのスタイルを定義しています

<ListView x:Name="lvPPtab1" Grid.Row="2" FontSize="12" Background="{x:Null}" BorderBrush="Gainsboro" BorderThickness="5" Margin="10,12.2,10,8.4" VerticalAlignment="Stretch" PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown" SelectionChanged="ListView_SelectionChanged"> 
    <ListView.Resources> 
     <Style x:Key="ListViewStyle" TargetType="ListView"> 
      <Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate > 
         <WrapPanel Orientation="Horizontal" VerticalAlignment="Top"/> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListView.Resources> 

    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="Blue"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 


lvPPtab1.Style = (Style)this.Resources["ListViewStyle"]; 

、すべてが何であるかを私は見る...何もリストビュー空:

<ListView x:Name="lvPPtab1" Grid.Row="2" FontSize="12" Background="{x:Null}" BorderBrush="Gainsboro" BorderThickness="5" Margin="10,12.2,10,8.4" VerticalAlignment="Stretch" PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown" SelectionChanged="ListView_SelectionChanged"> 
    <ListView.Resources> 
     <Style x:Key="ListViewStyle" TargetType="ListView"> 
      <Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate > 
         <WrapPanel Orientation="Horizontal" VerticalAlignment="Top"/> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListView.Resources> 

    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="Blue"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

2a.Iが、私はそれを必要とする場合にのみ、後ろに私のコードでそれを設定します。

は、その後、私はあなたが言ったことに固執しようとしたので、私はそれをやった:

1bは。 XAMLで

<ListView x:Name="lvPPtab1" Grid.Row="2" FontSize="12" Background="{x:Null}" BorderBrush="Gainsboro" BorderThickness="5" Margin="10,12.2,10,8.4" VerticalAlignment="Stretch" PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown" SelectionChanged="ListView_SelectionChanged"> 
<ListView.Resources> 
    <ItemsPanelTemplate x:Key="ListViewStyle" > 
     <WrapPanel Orientation="Horizontal" VerticalAlignment="Top"></WrapPanel> 
    </ItemsPanelTemplate> 
</ListView.Resources> 
<ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="Blue"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 
コードビハインドで
  • lvPPtab1.ItemsPanel =(ItemsPanelTemplate)this.Resources [ "ListViewStyle"]。

  • しかし、もう一度!私は間違っているすべての空白?????

    +0

    何のコード何ロジックあなたがしてください.can?何を習得しようとしているのか教えてください。 – Rohit

    +0

    あなたは私の前の質問にすべてを見つけることができます:http://stackoverflow.com/questions/36579473/continuation-to-how-can-i-programmatically-create-a-listview-full-of-strings-co?noredirect = 1#comment60762700_36579473 – Patrick

    +0

    私は運がなければ過去に試しました。 – adminSoftDK

    答えて

    3

    、リソース辞書にテンプレートを入れXを与える:あなたが背後にあるコードでそのプロパティにアクセスすることができ、あなたのリストビューに名前を付け:

    myListView.ItemsPanel 
    myListView.ItemsPanel = (ItemsPanelTemplate)this.Resources["MyListViewPanelTemplate"]; 
    
    +0

    あなたの答えをありがとうが、それは私が求めているものではありません。私ははっきりしていないかもしれません。 Ok myListView.Itemsパネル、そして残りの??? – Patrick

    +0

    私はあなたを落胆させた人ではありません。あなたのソリューションは興味深いと言われています。しかし、私が上に置いたコードを特有のリストビューの部分からリソースに移動するには?言い換えれば、それを一般的にする方法は? – Patrick

    +0

    このリンクをチェックするhttp://stackoverflow.com/questions/5705666/listview-define-itemspaneltemplate-in-resource-dictionary –

    関連する問題